Add support for Oracle 12 


Change-Id: Ic903891867ef54b32c9d1b7b1b466864a90c0932
Signed-off-by: sguan <sguan@actuate.com>
diff --git a/plugins/enablement/org.eclipse.datatools.enablement.oracle.dbdefinition/plugin.properties b/plugins/enablement/org.eclipse.datatools.enablement.oracle.dbdefinition/plugin.properties
index c905890..62a9952 100644
--- a/plugins/enablement/org.eclipse.datatools.enablement.oracle.dbdefinition/plugin.properties
+++ b/plugins/enablement/org.eclipse.datatools.enablement.oracle.dbdefinition/plugin.properties
@@ -12,6 +12,9 @@
 pluginName = Eclipse Data Tools Platform Oracle Database Definition Plug-in
 providerName = Eclipse Data Tools Platform
 
+12ProductString = Oracle
+12VersionString = 12
+
 11ProductString = Oracle
 11VersionString = 11
 
diff --git a/plugins/enablement/org.eclipse.datatools.enablement.oracle.dbdefinition/plugin.xml b/plugins/enablement/org.eclipse.datatools.enablement.oracle.dbdefinition/plugin.xml
index 9171382..a025f3d 100644
--- a/plugins/enablement/org.eclipse.datatools.enablement.oracle.dbdefinition/plugin.xml
+++ b/plugins/enablement/org.eclipse.datatools.enablement.oracle.dbdefinition/plugin.xml
@@ -5,6 +5,13 @@
    <extension
          point="org.eclipse.datatools.connectivity.sqm.core.databaseDefinition">
       <definition
+            version="12"
+            product="Oracle"
+            productDisplayString="%12ProductString"
+            versionDisplayString="%12VersionString"
+            file="runtime/vendors/Oracle_12/Oracle_12.xmi">
+      </definition>
+	  <definition
             version="11"
             product="Oracle"
             productDisplayString="%11ProductString"
diff --git a/plugins/enablement/org.eclipse.datatools.enablement.oracle.dbdefinition/runtime/vendors/Oracle_12/Oracle_12.xmi b/plugins/enablement/org.eclipse.datatools.enablement.oracle.dbdefinition/runtime/vendors/Oracle_12/Oracle_12.xmi
new file mode 100644
index 0000000..45195c5
--- /dev/null
+++ b/plugins/enablement/org.eclipse.datatools.enablement.oracle.dbdefinition/runtime/vendors/Oracle_12/Oracle_12.xmi
@@ -0,0 +1,1014 @@
+<?xml version="1.0" encoding="ASCII"?>
+<DBDefinition:DatabaseVendorDefinition xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:DBDefinition="http:///org/eclipse/datatools/modelbase/dbdefinition/dbdefinition.ecore" vendor="Oracle" version="12" maximumIdentifierLength="8" snapshotViewSupported="true" viewTriggerSupported="true" maximumCommentLength="64" sequenceSupported="true" synonymSupported="true" mQTSupported="true" mQTIndexSupported="true"
+ userDefinedTypeSupported="true" packageSupported="true" roleSupported="true" roleAuthorizationSupported="true" userSupported="true" constructedDataTypeSupported="true">
+  <predefinedDataTypeDefinitions xmi:id="BINARY_1" lengthSupported="true" keyConstraintSupported="true" maximumLength="2000" primitiveType="BINARY" jdbcEnumType="-2" javaClassName="byte[]">
+    <defaultValueTypes>NULL</defaultValueTypes>
+    <name>RAW</name>
+  </predefinedDataTypeDefinitions>
+  <predefinedDataTypeDefinitions xmi:id="BINARY_VARYING_1" primitiveType="BINARY_VARYING" jdbcEnumType="-3" orderingSupported="false" groupingSupported="false" javaClassName="byte[]">
+    <defaultValueTypes>NULL</defaultValueTypes>
+    <name>LONG RAW</name>
+  </predefinedDataTypeDefinitions>
+  <predefinedDataTypeDefinitions xmi:id="DATALINK_1" primitiveType="DATALINK" jdbcEnumType="-13" javaClassName="java.net.URL">
+    <defaultValueTypes>NULL</defaultValueTypes>
+    <name>BFILE</name>
+  </predefinedDataTypeDefinitions>
+  <predefinedDataTypeDefinitions xmi:id="BINARY_LARGE_OBJECT_1" primitiveType="BINARY_LARGE_OBJECT" jdbcEnumType="2004" orderingSupported="false" groupingSupported="false" javaClassName="java.sql.Blob">
+    <defaultValueTypes>NULL</defaultValueTypes>
+    <name>BLOB</name>
+  </predefinedDataTypeDefinitions>
+  <predefinedDataTypeDefinitions xmi:id="CHARACTER_1" lengthSupported="true" defaultLength="1" displayNameSupported="true" displayName="CHAR({0})" lengthSemanticSupported="true" keyConstraintSupported="true" bitDataSupported="true" maximumLength="2000" jdbcEnumType="1" javaClassName="java.lang.String">
+    <defaultValueTypes>USER</defaultValueTypes>
+    <defaultValueTypes>UID</defaultValueTypes>
+    <defaultValueTypes>NULL</defaultValueTypes>
+    <lengthSemantic>BYTE</lengthSemantic>
+    <lengthSemantic>CHAR</lengthSemantic>
+    <name>CHAR</name>
+    <name>CHARACTER</name>
+  </predefinedDataTypeDefinitions>
+  <predefinedDataTypeDefinitions xmi:id="CHARACTER_LARGE_OBJECT_1" primitiveType="CHARACTER_LARGE_OBJECT" jdbcEnumType="2005" orderingSupported="false" groupingSupported="false" javaClassName="java.sql.Clob">
+    <defaultValueTypes>USER</defaultValueTypes>
+    <defaultValueTypes>UID</defaultValueTypes>
+    <defaultValueTypes>NULL</defaultValueTypes>
+    <name>CLOB</name>
+  </predefinedDataTypeDefinitions>
+  <predefinedDataTypeDefinitions xmi:id="NATIONAL_CHARACTER_LARGE_OBJECT_1" primitiveType="NATIONAL_CHARACTER_LARGE_OBJECT" jdbcEnumType="1111" orderingSupported="false" groupingSupported="false" javaClassName="java.sql.Clob">
+    <defaultValueTypes>USER</defaultValueTypes>
+    <defaultValueTypes>UID</defaultValueTypes>
+    <defaultValueTypes>NULL</defaultValueTypes>
+    <name>NCLOB</name>
+  </predefinedDataTypeDefinitions>
+  <predefinedDataTypeDefinitions xmi:id="CHARACTER_VARYING_1" lengthSupported="true" defaultLength="1" displayNameSupported="true" displayName="VARCHAR2({0})" lengthSemanticSupported="true" keyConstraintSupported="true" bitDataSupported="true" maximumLength="4000" primitiveType="CHARACTER_VARYING" jdbcEnumType="12" javaClassName="java.lang.String">
+    <defaultValueTypes>USER</defaultValueTypes>
+    <defaultValueTypes>UID</defaultValueTypes>
+    <defaultValueTypes>NULL</defaultValueTypes>
+    <lengthSemantic>BYTE</lengthSemantic>
+    <lengthSemantic>CHAR</lengthSemantic>
+    <name>VARCHAR2</name>
+    <name>CHARACTER VARYING</name>
+    <name>CHAR VARYING</name>
+  </predefinedDataTypeDefinitions>
+  <predefinedDataTypeDefinitions xmi:id="CHARACTER_VARYING_2" primitiveType="CHARACTER_VARYING" jdbcEnumType="12" orderingSupported="false" groupingSupported="false" javaClassName="java.lang.String">
+    <defaultValueTypes>USER</defaultValueTypes>
+    <defaultValueTypes>UID</defaultValueTypes>
+    <defaultValueTypes>NULL</defaultValueTypes>
+    <name>LONG</name>
+  </predefinedDataTypeDefinitions>
+  <predefinedDataTypeDefinitions xmi:id="INTERVAL_1" keyConstraintSupported="true" displayNameSupported="true" displayName="INTERVAL {0} TO {1}" leadingFieldQualifierSupported="true" trailingFieldQualifierSupported="true" fieldQualifierSeparator=" TO " defaultLeadingFieldQualifierDefinition="L_YEAR" defaultTrailingFieldQualifierDefinition="T_MONTH" primitiveType="INTERVAL">
+    <defaultValueTypes>NULL</defaultValueTypes>
+    <leadingFieldQualifierDefinition xmi:id="L_YEAR" name="YEAR" precisionSupported="true" maximumPrecision="9" defaultPrecision="2" validTrailingFieldQualifierDefinitions="T_MONTH"/>
+    <leadingFieldQualifierDefinition xmi:id="L_DAY" name="DAY" precisionSupported="true" maximumPrecision="9" defaultPrecision="2" validTrailingFieldQualifierDefinitions="T_SECOND"/>
+    <trailingFieldQualifierDefinition xmi:id="T_MONTH" name="MONTH"/>
+    <trailingFieldQualifierDefinition xmi:id="T_SECOND" name="SECOND" precisionSupported="true" maximumPrecision="9" defaultPrecision="2"/>
+    <name>INTERVAL</name>
+  </predefinedDataTypeDefinitions>
+  <predefinedDataTypeDefinitions xmi:id="DATE_1" keyConstraintSupported="true" primitiveType="DATE" jdbcEnumType="91" javaClassName="java.sql.Date">
+    <defaultValueTypes>CURRENT_DATE</defaultValueTypes>
+    <defaultValueTypes>SYSDATE</defaultValueTypes>
+    <defaultValueTypes>NULL</defaultValueTypes>
+    <name>DATE</name>
+  </predefinedDataTypeDefinitions>
+  <predefinedDataTypeDefinitions xmi:id="NUMERIC_1" scaleSupported="true" precisionSupported="true" keyConstraintSupported="true" identitySupported="false" maximumPrecision="38" maximumScale="127" minimumScale="-84" primitiveType="NUMERIC" jdbcEnumType="2" javaClassName="java.math.BigDecimal">
+    <defaultValueTypes>NULL</defaultValueTypes>
+    <name>NUMBER</name>
+  </predefinedDataTypeDefinitions>
+  <predefinedDataTypeDefinitions xmi:id="FLOAT_1" precisionSupported="true" keyConstraintSupported="true" identitySupported="false" maximumPrecision="126" defaultPrecision="126" primitiveType="FLOAT" jdbcEnumType="6" javaClassName="double">
+    <defaultValueTypes>NULL</defaultValueTypes>
+    <name>FLOAT</name>
+  </predefinedDataTypeDefinitions>
+  <predefinedDataTypeDefinitions xmi:id="DOUBLE_PRECISION_1" primitiveType="DOUBLE_PRECISION" jdbcEnumType="8" javaClassName="double">
+    <defaultValueTypes>NULL</defaultValueTypes>
+    <name>DOUBLE PRECISION</name>
+  </predefinedDataTypeDefinitions>
+  <predefinedDataTypeDefinitions xmi:id="REAL_1" primitiveType="REAL" jdbcEnumType="7" javaClassName="float">
+    <defaultValueTypes>NULL</defaultValueTypes>
+    <name>REAL</name>
+  </predefinedDataTypeDefinitions>
+  <predefinedDataTypeDefinitions xmi:id="INTEGER_1" primitiveType="INTEGER" keyConstraintSupported="true" jdbcEnumType="4" javaClassName="int">
+    <defaultValueTypes>NULL</defaultValueTypes>
+    <name>INT</name>
+    <name>INTEGER</name>
+  </predefinedDataTypeDefinitions>
+  <predefinedDataTypeDefinitions xmi:id="SMALLINT_1" primitiveType="SMALLINT" keyConstraintSupported="true" jdbcEnumType="5" javaClassName="short">
+    <defaultValueTypes>NULL</defaultValueTypes>
+    <name>SMALLINT</name>
+  </predefinedDataTypeDefinitions>
+  <predefinedDataTypeDefinitions xmi:id="DECIMAL_1" scaleSupported="true" precisionSupported="true" keyConstraintSupported="true" identitySupported="false" primitiveType="DECIMAL" jdbcEnumType="3" javaClassName="java.math.BigDecimal">
+    <defaultValueTypes>NULL</defaultValueTypes>
+    <name>DECIMAL</name>
+  </predefinedDataTypeDefinitions>
+  <predefinedDataTypeDefinitions xmi:id="NUMERIC_2" scaleSupported="true" precisionSupported="true" keyConstraintSupported="true" identitySupported="false" primitiveType="NUMERIC" jdbcEnumType="2" javaClassName="java.math.BigDecimal">
+    <defaultValueTypes>NULL</defaultValueTypes>
+    <name>NUMERIC</name>
+  </predefinedDataTypeDefinitions>
+  <predefinedDataTypeDefinitions xmi:id="NATIONAL_CHARACTER_1" lengthSupported="true" defaultLength="1" keyConstraintSupported="true" multipleColumnsSupported="true" maximumLength="2000" primitiveType="NATIONAL_CHARACTER" jdbcEnumType="1111" javaClassName="java.lang.String">
+    <defaultValueTypes>USER</defaultValueTypes>
+    <defaultValueTypes>UID</defaultValueTypes>
+    <defaultValueTypes>NULL</defaultValueTypes>
+    <name>NCHAR</name>
+    <name>NATIONAL CHARACTER</name>
+    <name>NATIONAL CHAR</name>
+  </predefinedDataTypeDefinitions>
+  <predefinedDataTypeDefinitions xmi:id="NATIONAL_CHARACTER_VARYING_1" lengthSupported="true" defaultLength="1" keyConstraintSupported="true" multipleColumnsSupported="true" maximumLength="4000" primitiveType="NATIONAL_CHARACTER_VARYING" jdbcEnumType="12" javaClassName="java.lang.String">
+    <defaultValueTypes>USER</defaultValueTypes>
+    <defaultValueTypes>UID</defaultValueTypes>
+    <defaultValueTypes>NULL</defaultValueTypes>
+    <name>NVARCHAR2</name>
+    <name>NATIONAL CHARACTER VARYING</name>
+    <name>NATIONAL CHAR VARYING</name>
+    <name>NCHAR VARYING</name>
+  </predefinedDataTypeDefinitions>
+  <predefinedDataTypeDefinitions xmi:id="TIMESTAMP_1" keyConstraintSupported="true" precisionSupported="true" maximumPrecision="9" defaultPrecision="6" primitiveType="TIMESTAMP" jdbcEnumType="93" javaClassName="java.sql.Timestamp">
+    <defaultValueTypes>CURRENT_TIMESTAMP</defaultValueTypes>
+    <defaultValueTypes>NULL</defaultValueTypes>
+    <name>TIMESTAMP</name>
+  </predefinedDataTypeDefinitions>
+  <predefinedDataTypeDefinitions xmi:id="TIMESTAMP_2" keyConstraintSupported="true" precisionSupported="true" maximumPrecision="9" defaultPrecision="6" primitiveType="TIMESTAMP" jdbcEnumType="93" javaClassName="java.sql.Timestamp">
+    <defaultValueTypes>CURRENT_TIMESTAMP</defaultValueTypes>
+    <defaultValueTypes>NULL</defaultValueTypes>
+    <name>TIMESTAMP WITH TIME ZONE</name>
+  </predefinedDataTypeDefinitions>
+  <predefinedDataTypeDefinitions xmi:id="TIMESTAMP_3" keyConstraintSupported="true" precisionSupported="true" maximumPrecision="9" defaultPrecision="6" primitiveType="TIMESTAMP" jdbcEnumType="93" javaClassName="java.sql.Timestamp">
+    <defaultValueTypes>CURRENT_TIMESTAMP</defaultValueTypes>
+    <defaultValueTypes>NULL</defaultValueTypes>
+    <name>TIMESTAMP WITH LOCAL TIME ZONE</name>
+  </predefinedDataTypeDefinitions>
+  <predefinedDataTypeDefinitions xmi:id="XML_TYPE_1" primitiveType="XML_TYPE" jdbcEnumType="509" orderingSupported="false" groupingSupported="false" javaClassName="java.lang.String">
+    <defaultValueTypes>NULL</defaultValueTypes>
+    <name>XMLTYPE</name>
+  </predefinedDataTypeDefinitions>
+  <predefinedDataTypeDefinitions xmi:id="FLOAT_2" primitiveType="FLOAT" jdbcEnumType="6" javaClassName="double">
+    <defaultValueTypes>NULL</defaultValueTypes>
+    <name>BINARY_FLOAT</name>
+  </predefinedDataTypeDefinitions>
+  <predefinedDataTypeDefinitions xmi:id="DOUBLE_PRECISION_2" primitiveType="DOUBLE_PRECISION" jdbcEnumType="8" javaClassName="double">
+    <defaultValueTypes>NULL</defaultValueTypes>
+    <name>BINARY_DOUBLE</name>
+  </predefinedDataTypeDefinitions>
+  <predefinedDataTypeDefinitions xmi:id="CHARACTER_2" primitiveType="CHARACTER" jdbcEnumType="1" javaClassName="java.lang.String">
+    <defaultValueTypes>NULL</defaultValueTypes>
+    <name>ROWID</name>
+  </predefinedDataTypeDefinitions>
+  <predefinedDataTypeDefinitions xmi:id="CHARACTER_VARYING_3" primitiveType="CHARACTER_VARYING" lengthSupported="true" maximumLength="4000" defaultLength="4000" jdbcEnumType="12" javaClassName="java.lang.String">
+    <defaultValueTypes>NULL</defaultValueTypes>
+    <name>UROWID</name>
+  </predefinedDataTypeDefinitions>
+  <tableSpaceDefinition maximumIdentifierLength="30" typeSupported="true" extentSizeSupported="true" containerMaximumSizeSupported="true" containerInitialSizeSupported="true" containerExtentSizeSupported="true">
+    <tableSpaceType>PERMANENT</tableSpaceType>
+    <tableSpaceType>TEMPORARY</tableSpaceType>
+  </tableSpaceDefinition>
+  <storedProcedureDefinition maximumIdentifierLength="30" packageGenerationSupported="true" returnedNullSupported="true" returnedTypeDeclarationConstraintSupported="true" parameterInitValueSupported="true" parameterDeclarationConstraintSupported="true">
+    <languageType>SQL</languageType>
+    <languageType>JAVA</languageType>
+    <languageType>C</languageType>
+    <procedureType>PROCEDURE</procedureType>
+    <procedureType>FUNCTION</procedureType>
+    <functionLanguageType>SQL</functionLanguageType>
+    <functionLanguageType>JAVA</functionLanguageType>
+  </storedProcedureDefinition>
+  <triggerDefinition whenClauseSupported="true" granularitySupported="true" referencesClauseSupported="true" perColumnUpdateTriggerSupported="true" insteadOfTriggerSupported="true" rowTriggerReferenceSupported="true" tableTriggerReferenceSupported="true"/>
+  <columnDefinition maximumIdentifierLength="30" computedSupported="true"/>
+  <constraintDefinition maximumPrimaryKeyIdentifierLength="30" maximumForeignKeyIdentifierLength="30" maximumCheckConstraintIdentifierLength="30" clusteredUniqueConstraintSupported="true" deferrableConstraintSupported="true">
+    <parentUpdateDRIRuleType>NO_ACTION</parentUpdateDRIRuleType>
+    <parentDeleteDRIRuleType>CASCADE</parentDeleteDRIRuleType>
+    <parentDeleteDRIRuleType>SET_NULL</parentDeleteDRIRuleType>
+    <parentDeleteDRIRuleType>NO_ACTION</parentDeleteDRIRuleType>
+    <checkOption>NONE</checkOption>
+    <checkOption>LOCAL</checkOption>
+  </constraintDefinition>
+  <sequenceDefinition defaultDataTypeDefinition="NUMERIC_1" typeEnumerationSupported="true"/>
+  <queryDefinition hostVariableMarker=":"/>
+  <indexDefinition maximumIdentifierLength="30"/>
+  <viewDefinition maximumIdentifierLength="30"/>
+  <tableDefinition maximumIdentifierLength="30"/>
+  <schemaDefinition maximumIdentifierLength="30"/>
+  <udtDefinition maximumIdentifierLength="30" structuredTypeSupported="true"/>
+  <constructedDataTypeDefinition arrayDatatypeSupported="true" multisetDatatypeSupported="true" rowDatatypeSupported="true" referenceDatatypeSupported="true"/>
+  <privilegedElementDefinitions name="PersistentTable">
+  	<privilegeDefinitions name="ALTER"/>
+    <privilegeDefinitions name="DEBUG"/>
+    <privilegeDefinitions name="DELETE"/>
+    <privilegeDefinitions name="INDEX"/>
+    <privilegeDefinitions name="INSERT" actionElementDefinitions="COLUMN_1"/>
+    <privilegeDefinitions name="REFERENCES" actionElementDefinitions="COLUMN_1"/>
+    <privilegeDefinitions name="SELECT"/>
+    <privilegeDefinitions name="UPDATE" actionElementDefinitions="COLUMN_1"/>
+  </privilegedElementDefinitions>
+  <privilegedElementDefinitions name="ViewTable">
+    <privilegeDefinitions name="DEBUG"/>
+    <privilegeDefinitions name="DELETE"/>
+    <privilegeDefinitions name="INSERT" actionElementDefinitions="COLUMN_1"/>
+    <privilegeDefinitions name="REFERENCES" actionElementDefinitions="COLUMN_1"/>
+    <privilegeDefinitions name="SELECT"/>
+    <privilegeDefinitions name="UNDER"/>
+    <privilegeDefinitions name="UPDATE" actionElementDefinitions="COLUMN_1"/>
+  </privilegedElementDefinitions>
+  <privilegedElementDefinitions name="MaterializedView">
+    <privilegeDefinitions name="DELETE"/>
+    <privilegeDefinitions name="FLASHBACK"/>
+    <privilegeDefinitions name="INSERT" actionElementDefinitions="COLUMN_1"/>
+    <privilegeDefinitions name="ON COMMIT REFRESH"/>
+    <privilegeDefinitions name="QUERY REWRITE"/>
+    <privilegeDefinitions name="SELECT"/>
+    <privilegeDefinitions name="UPDATE" actionElementDefinitions="COLUMN_1"/>
+  </privilegedElementDefinitions>
+  <privilegedElementDefinitions name="Sequence">
+    <privilegeDefinitions name="ALTER"/>
+    <privilegeDefinitions name="SELECT"/>
+  </privilegedElementDefinitions>
+  <privilegedElementDefinitions name="Routine">
+  	<privilegeDefinitions name="DEBUG"/>
+  	<privilegeDefinitions name="EXECUTE"/>
+  </privilegedElementDefinitions>
+  <privilegedElementDefinitions name="Package">
+  	<privilegeDefinitions name="DEBUG"/>
+  	<privilegeDefinitions name="EXECUTE"/>
+  </privilegedElementDefinitions>
+  <privilegedElementDefinitions name="Library">
+  	<privilegeDefinitions name="EXECUTE"/>
+  </privilegedElementDefinitions>
+  <privilegedElementDefinitions name="Directory">
+  	<privilegeDefinitions name="READ"/>
+  	<privilegeDefinitions name="WRITE"/>
+  </privilegedElementDefinitions>
+  <privilegedElementDefinitions name="Operator">
+  	<privilegeDefinitions name="EXECUTE"/>
+  </privilegedElementDefinitions>
+  <privilegedElementDefinitions name="IndexType">
+  	<privilegeDefinitions name="EXECUTE"/>
+  </privilegedElementDefinitions>
+  <privilegedElementDefinitions name="UserDefinedType">
+  	<privilegeDefinitions name="DEBUG"/>
+  	<privilegeDefinitions name="EXECUTE"/>
+    <privilegeDefinitions name="UNDER"/>
+  </privilegedElementDefinitions>
+  <privilegedElementDefinitions name="FlashbackDataArchive">
+  	<privilegeDefinitions name="FLASHBACK ARCHIVE"/>
+  </privilegedElementDefinitions>
+  <privilegedElementDefinitions name="MiningModel">
+  	<privilegeDefinitions name="ALTER"/>
+  	<privilegeDefinitions name="SELECT"/>
+  </privilegedElementDefinitions>
+  <privilegedElementDefinitions name="ObjectType">
+  	<privilegeDefinitions name="DEBUG"/>
+  	<privilegeDefinitions name="EXECUTE"/>
+    <privilegeDefinitions name="UNDER"/>
+  </privilegedElementDefinitions>
+  <privilegedElementDefinitions name="OLAP">
+  	<privilegeDefinitions name="ALTER"/>
+  	<privilegeDefinitions name="DELETE"/>
+  	<privilegeDefinitions name="INSERT"/>
+  	<privilegeDefinitions name="SELECT"/>
+  	<privilegeDefinitions name="UPDATE"/>
+  </privilegedElementDefinitions>
+  <privilegedElementDefinitions xmi:id="COLUMN_1" name="Column"/>
+  <SQLSyntaxDefinition>
+    <keywords>A</keywords>
+	<keywords>ABORT</keywords>
+	<keywords>ABS</keywords>
+	<keywords>ABSOLUTE</keywords>
+	<keywords>ACCESS</keywords>
+	<keywords>ACOS</keywords>
+	<keywords>ACQUIRE</keywords>
+	<keywords>ACTION</keywords>
+	<keywords>ACTIVATE</keywords>
+	<keywords>ADA</keywords>
+	<keywords>ADD</keywords>
+	<keywords>ADDFORM</keywords>
+	<keywords>ADMIN</keywords>
+	<keywords>AFTER</keywords>
+	<keywords>AGGREGATE</keywords>
+	<keywords>ALIAS</keywords>
+	<keywords>ALL</keywords>
+	<keywords>ALLOCATE</keywords>
+	<keywords>ALTER</keywords>
+	<keywords>AN</keywords>
+	<keywords>ANALYZE</keywords>
+	<keywords>AND</keywords>
+	<keywords>ANY</keywords>
+	<keywords>APPEND</keywords>
+	<keywords>ARCHIVE</keywords>
+	<keywords>ARCHIVELOG</keywords>
+	<keywords>ARE</keywords>
+	<keywords>ARRAY</keywords>
+	<keywords>ARRAYLEN</keywords>
+	<keywords>AS</keywords>
+	<keywords>ASC</keywords>
+	<keywords>ASCII</keywords>
+	<keywords>ASIN</keywords>
+	<keywords>ASSERTION</keywords>
+	<keywords>AT</keywords>
+	<keywords>ATAN</keywords>
+	<keywords>AUDIT</keywords>
+	<keywords>AUTHORIZATION</keywords>
+	<keywords>AVG</keywords>
+	<keywords>AVGU</keywords>
+	<keywords>BACKUP</keywords>
+	<keywords>BECOME</keywords>
+	<keywords>BEFORE</keywords>
+	<keywords>BEGIN</keywords>
+	<keywords>BETWEEN</keywords>
+	<keywords>BIGINT</keywords>
+	<keywords>BINARY</keywords>
+	<keywords>BIND</keywords>
+	<keywords>BINDING</keywords>
+	<keywords>BIT</keywords>
+	<keywords>BLOB</keywords>
+	<keywords>BLOCK</keywords>
+	<keywords>BODY</keywords>
+	<keywords>BOOLEAN</keywords>
+	<keywords>BOTH</keywords>
+	<keywords>BREADTH</keywords>
+	<keywords>BREAK</keywords>
+	<keywords>BREAKDISPLAY</keywords>
+	<keywords>BROWSE</keywords>
+	<keywords>BUFFERPOOL</keywords>
+	<keywords>BULK</keywords>
+	<keywords>BY</keywords>
+	<keywords>BYREF</keywords>
+	<keywords>CACHE</keywords>
+	<keywords>CALL</keywords>
+	<keywords>CALLPROC</keywords>
+	<keywords>CANCEL</keywords>
+	<keywords>CAPTURE</keywords>
+	<keywords>CASCADE</keywords>
+	<keywords>CASCADED</keywords>
+	<keywords>CASE</keywords>
+	<keywords>CAST</keywords>
+	<keywords>CATALOG</keywords>
+	<keywords>CCSID</keywords>
+	<keywords>CEILING</keywords>
+	<keywords>CHANGE</keywords>
+	<keywords>CHAR</keywords>
+	<keywords>CHARACTER</keywords>
+	<keywords>CHARTOROWID</keywords>
+	<keywords>CHECK</keywords>
+	<keywords>CLASS</keywords>
+	<keywords>CLOB</keywords>
+	<keywords>CHECKPOINT</keywords>
+	<keywords>CHR</keywords>
+	<keywords>CLEANUP</keywords>
+	<keywords>CLEAR</keywords>
+	<keywords>CLEARROW</keywords>
+	<keywords>CLOSE</keywords>
+	<keywords>CLUSTER</keywords>
+	<keywords>CLUSTERED</keywords>
+	<keywords>COALESCE</keywords>
+	<keywords>COBOL</keywords>
+	<keywords>COLGROUP</keywords>
+	<keywords>COLLATE</keywords>
+	<keywords>COLLATION</keywords>
+	<keywords>COLLECTION</keywords>
+	<keywords>COLUMN</keywords>
+	<keywords>COMMAND</keywords>
+	<keywords>COMMENT</keywords>
+	<keywords>COMMIT</keywords>
+	<keywords>COMPLETION</keywords>
+	<keywords>COMMITTED</keywords>
+	<keywords>COMPILE</keywords>
+	<keywords>COMPLEX</keywords>
+	<keywords>COMPRESS</keywords>
+	<keywords>COMPUTE</keywords>
+	<keywords>CONCAT</keywords>
+	<keywords>CONFIRM</keywords>
+	<keywords>CONNECT</keywords>
+	<keywords>CONNECTION</keywords>
+	<keywords>CONSTRAINT</keywords>
+	<keywords>CONSTRAINTS</keywords>
+	<keywords>CONSTRUCTOR</keywords>
+	<keywords>CONTAINS</keywords>
+	<keywords>CONTAINSTABLE</keywords>
+	<keywords>CONTENTS</keywords>
+	<keywords>CONTINUE</keywords>
+	<keywords>CONTROLFILE</keywords>
+	<keywords>CONTROLROW</keywords>
+	<keywords>CONVERT</keywords>
+	<keywords>COPY</keywords>
+	<keywords>CORRESPONDING</keywords>
+	<keywords>COS</keywords>
+	<keywords>COUNT</keywords>
+	<keywords>COUNTU</keywords>
+	<keywords>CREATE</keywords>
+	<keywords>CROSS</keywords>
+	<keywords>CUBE</keywords>
+	<keywords>CURRENT</keywords>
+	<keywords>CURRENT_DATE</keywords>
+	<keywords>CURRENT_PATH</keywords>
+	<keywords>CURRENT_ROLE</keywords>
+	<keywords>CURRENT_TIME</keywords>
+	<keywords>CURRENT_TIMESTAMP</keywords>
+	<keywords>CURRENT_USER</keywords>
+	<keywords>CURSOR</keywords>
+	<keywords>CVAR</keywords>
+	<keywords>CYCLE</keywords>
+	<keywords>DATA</keywords>
+	<keywords>DATABASE</keywords>
+	<keywords>DATAFILE</keywords>
+	<keywords>DATAHANDLER</keywords>
+	<keywords>DATAPAGES</keywords>
+	<keywords>DATE</keywords>
+	<keywords>DAY</keywords>
+	<keywords>DAYOFMONTH</keywords>
+	<keywords>DAYOFWEEK</keywords>
+	<keywords>DAYOFYEAR</keywords>
+	<keywords>DAYS</keywords>
+	<keywords>DBA</keywords>
+	<keywords>DBCC</keywords>
+	<keywords>DBSPACE</keywords>
+	<keywords>DEALLOCATE</keywords>
+	<keywords>DEC</keywords>
+	<keywords>DECIMAL</keywords>
+	<keywords>DECLARATION</keywords>
+	<keywords>DECLARE</keywords>
+	<keywords>DECODE</keywords>
+	<keywords>DEFAULT</keywords>
+	<keywords>DEFERRABLE</keywords>
+	<keywords>DEFERRED</keywords>
+	<keywords>DEFINE</keywords>
+	<keywords>DEFINITION</keywords>
+	<keywords>DEGREES</keywords>
+	<keywords>DELETE</keywords>
+	<keywords>DEPTH</keywords>
+	<keywords>DEREF</keywords>
+	<keywords>DELETEROW</keywords>
+	<keywords>DENY</keywords>
+	<keywords>DESC</keywords>
+	<keywords>DESCRIBE</keywords>
+	<keywords>DESCRIPTOR</keywords>
+	<keywords>DESTROY</keywords>
+	<keywords>DHTYPE</keywords>
+	<keywords>DESTRUCTOR</keywords>
+	<keywords>DETERMINISTIC</keywords>
+	<keywords>DICTIONARY</keywords>
+	<keywords>DIAGNOSTICS</keywords>
+	<keywords>DIRECT</keywords>
+	<keywords>DISABLE</keywords>
+	<keywords>DISCONNECT</keywords>
+	<keywords>DISK</keywords>
+	<keywords>DISMOUNT</keywords>
+	<keywords>DISPLAY</keywords>
+	<keywords>DISTINCT</keywords>
+	<keywords>DISTRIBUTE</keywords>
+	<keywords>DISTRIBUTED</keywords>
+	<keywords>DO</keywords>
+	<keywords>DOMAIN</keywords>
+	<keywords>DOUBLE</keywords>
+	<keywords>DOWN</keywords>
+	<keywords>DROP</keywords>
+	<keywords>DUMMY</keywords>
+	<keywords>DUMP</keywords>
+	<keywords>DYNAMIC</keywords>
+	<keywords>EACH</keywords>
+	<keywords>EDITPROC</keywords>
+	<keywords>ELSE</keywords>
+	<keywords>ELSEIF</keywords>
+	<keywords>ENABLE</keywords>
+	<keywords>END</keywords>
+	<keywords>ENDDATA</keywords>
+	<keywords>ENDDISPLAY</keywords>
+	<keywords>ENDEXEC</keywords>
+	<keywords>END-EXEC</keywords>
+	<keywords>ENDFORMS</keywords>
+	<keywords>ENDIF</keywords>
+	<keywords>ENDLOOP</keywords>
+	<keywords>EQUALS</keywords>
+	<keywords>ENDSELECT</keywords>
+	<keywords>ENDWHILE</keywords>
+	<keywords>ERASE</keywords>
+	<keywords>ERRLVL</keywords>
+	<keywords>ERROREXIT</keywords>
+	<keywords>ESCAPE</keywords>
+	<keywords>EVENTS</keywords>
+	<keywords>EVERY</keywords>
+	<keywords>EXCEPT</keywords>
+	<keywords>EXCEPTION</keywords>
+	<keywords>EXCEPTIONS</keywords>
+	<keywords>EXCLUDE</keywords>
+	<keywords>EXCLUDING</keywords>
+	<keywords>EXCLUSIVE</keywords>
+	<keywords>EXEC</keywords>
+	<keywords>EXECUTE</keywords>
+	<keywords>EXISTS</keywords>
+	<keywords>EXIT</keywords>
+	<keywords>EXP</keywords>
+	<keywords>EXPLAIN</keywords>
+	<keywords>EXPLICIT</keywords>
+	<keywords>EXTENT</keywords>
+	<keywords>EXTERNAL</keywords>
+	<keywords>EXTERNALLY</keywords>
+	<keywords>EXTRACT</keywords>
+	<keywords>FALSE</keywords>
+	<keywords>FETCH</keywords>
+	<keywords>FIELD</keywords>
+	<keywords>FIELDPROC</keywords>
+	<keywords>FILE</keywords>
+	<keywords>FILLFACTOR</keywords>
+	<keywords>FINALIZE</keywords>
+	<keywords>FINALIZE</keywords>
+	<keywords>FIRST</keywords>
+	<keywords>FLOAT</keywords>
+	<keywords>FLOOR</keywords>
+	<keywords>FLOPPY</keywords>
+	<keywords>FLUSH</keywords>
+	<keywords>FOR</keywords>
+	<keywords>FORCE</keywords>
+	<keywords>FORMDATA</keywords>
+	<keywords>FORMINIT</keywords>
+	<keywords>FORMS</keywords>
+	<keywords>FORTRAN</keywords>
+	<keywords>FOREIGN</keywords>
+	<keywords>FOUND</keywords>
+	<keywords>FREELIST</keywords>
+	<keywords>FREELISTS</keywords>
+	<keywords>FREETEXT</keywords>
+	<keywords>FREETEXTTABLE</keywords>
+	<keywords>FROM</keywords>
+	<keywords>FREE</keywords>
+	<keywords>FULL</keywords>
+	<keywords>FUNCTION</keywords>
+	<keywords>GENERAL</keywords>
+	<keywords>GET</keywords>
+	<keywords>GETCURRENTCONNECTION</keywords>
+	<keywords>GETFORM</keywords>
+	<keywords>GETOPER</keywords>
+	<keywords>GETROW</keywords>
+	<keywords>GLOBAL</keywords>
+	<keywords>GO</keywords>
+	<keywords>GOTO</keywords>
+	<keywords>GRANT</keywords>
+	<keywords>GRANTED</keywords>
+	<keywords>GRAPHIC</keywords>
+	<keywords>GREATEST</keywords>
+	<keywords>GROUP</keywords>
+	<keywords>GROUPING</keywords>
+	<keywords>GROUPS</keywords>
+	<keywords>HASH</keywords>
+	<keywords>HAVING</keywords>
+	<keywords>HOST</keywords>
+	<keywords>HELP</keywords>
+	<keywords>HELPFILE</keywords>
+	<keywords>HOLDLOCK</keywords>
+	<keywords>HOUR</keywords>
+	<keywords>HOURS</keywords>
+	<keywords>IDENTIFIED</keywords>
+	<keywords>IDENTITY</keywords>
+	<keywords>IGNORE</keywords>
+	<keywords>IDENTITYCOL</keywords>
+	<keywords>IF</keywords>
+	<keywords>IFNULL</keywords>
+	<keywords>IIMESSAGE</keywords>
+	<keywords>IIPRINTF</keywords>
+	<keywords>IMMEDIATE</keywords>
+	<keywords>IMPORT</keywords>
+	<keywords>IN</keywords>
+	<keywords>INCLUDE</keywords>
+	<keywords>INCLUDING</keywords>
+	<keywords>INCREMENT</keywords>
+	<keywords>INDEX</keywords>
+	<keywords>INDEXPAGES</keywords>
+	<keywords>INDICATOR</keywords>
+	<keywords>INITCAP</keywords>
+	<keywords>INITIAL</keywords>
+	<keywords>INITIALIZE</keywords>
+	<keywords>INITIALLY</keywords>
+	<keywords>INITRANS</keywords>
+	<keywords>INITTABLE</keywords>
+	<keywords>INNER</keywords>
+	<keywords>INOUT</keywords>
+	<keywords>INPUT</keywords>
+	<keywords>INSENSITIVE</keywords>
+	<keywords>INSERT</keywords>
+	<keywords>INSERTROW</keywords>
+	<keywords>INSTANCE</keywords>
+	<keywords>INSTR</keywords>
+	<keywords>INT</keywords>
+	<keywords>INTEGER</keywords>
+	<keywords>INTEGRITY</keywords>
+	<keywords>INTERFACE</keywords>
+	<keywords>INTERSECT</keywords>
+	<keywords>INTERVAL</keywords>
+	<keywords>INTO</keywords>
+	<keywords>IS</keywords>
+	<keywords>ISOLATION</keywords>
+	<keywords>ITERATE</keywords>
+	<keywords>JOIN</keywords>
+	<keywords>KEY</keywords>
+	<keywords>KILL</keywords>
+	<keywords>LABEL</keywords>
+	<keywords>LANGUAGE</keywords>
+	<keywords>LARGE</keywords>
+	<keywords>LAST</keywords>
+	<keywords>LATERAL</keywords>
+	<keywords>LAYER</keywords>
+	<keywords>LEADING</keywords>
+	<keywords>LEAST</keywords>
+	<keywords>LEFT</keywords>
+	<keywords>LESS</keywords>
+	<keywords>LENGTH</keywords>
+	<keywords>LEVEL</keywords>
+	<keywords>LIKE</keywords>
+	<keywords>LIMIT</keywords>
+	<keywords>LINENO</keywords>
+	<keywords>LINK</keywords>
+	<keywords>LIST</keywords>
+	<keywords>LISTS</keywords>
+	<keywords>LOAD</keywords>
+	<keywords>LOADTABLE</keywords>
+	<keywords>LOCAL</keywords>
+	<keywords>LOCALTIME</keywords>
+	<keywords>LOCALTIMESTAMP</keywords>
+	<keywords>LOCATOR</keywords>
+	<keywords>LOCATE</keywords>
+	<keywords>LOCK</keywords>
+	<keywords>LOCKSIZE</keywords>
+	<keywords>LOG</keywords>
+	<keywords>LOGFILE</keywords>
+	<keywords>LONG</keywords>
+	<keywords>LONGINT</keywords>
+	<keywords>LOWER</keywords>
+	<keywords>LPAD</keywords>
+	<keywords>LTRIM</keywords>
+	<keywords>LVARBINARY</keywords>
+	<keywords>LVARCHAR</keywords>
+	<keywords>MAIN</keywords>
+	<keywords>MANAGE</keywords>
+	<keywords>MANUAL</keywords>
+	<keywords>MAP</keywords>
+	<keywords>MATCH</keywords>
+	<keywords>MAX</keywords>
+	<keywords>MAXDATAFILES</keywords>
+	<keywords>MAXEXTENTS</keywords>
+	<keywords>MAXINSTANCES</keywords>
+	<keywords>MAXLOGFILES</keywords>
+	<keywords>MAXLOGHISTORY</keywords>
+	<keywords>MAXLOGMEMBERS</keywords>
+	<keywords>MAXTRANS</keywords>
+	<keywords>MAXVALUE</keywords>
+	<keywords>MENUITEM</keywords>
+	<keywords>MESSAGE</keywords>
+	<keywords>MICROSECOND</keywords>
+	<keywords>MICROSECONDS</keywords>
+	<keywords>MIN</keywords>
+	<keywords>MINEXTENTS</keywords>
+	<keywords>MINUS</keywords>
+	<keywords>MINUTE</keywords>
+	<keywords>MODIFIES</keywords>
+	<keywords>MINUTES</keywords>
+	<keywords>MINVALUE</keywords>
+	<keywords>MIRROREXIT</keywords>
+	<keywords>MOD</keywords>
+	<keywords>MODE</keywords>
+	<keywords>MODIFY</keywords>
+	<keywords>MODULE</keywords>
+	<keywords>MONEY</keywords>
+	<keywords>MONTH</keywords>
+	<keywords>MONTHS</keywords>
+	<keywords>MOUNT</keywords>
+	<keywords>MOVE</keywords>
+	<keywords>NAMED</keywords>
+	<keywords>NAMES</keywords>
+	<keywords>NATIONAL</keywords>
+	<keywords>NATURAL</keywords>
+	<keywords>NCHAR</keywords>
+	<keywords>NCLOB</keywords>
+	<keywords>NEW</keywords>
+	<keywords>NEXT</keywords>
+	<keywords>NHEADER</keywords>
+	<keywords>NO</keywords>
+	<keywords>NOARCHIVELOG</keywords>
+	<keywords>NOAUDIT</keywords>
+	<keywords>NOCACHE</keywords>
+	<keywords>NOCHECK</keywords>
+	<keywords>NOCOMPRESS</keywords>
+	<keywords>NOCYCLE</keywords>
+	<keywords>NOECHO</keywords>
+	<keywords>NOMAXVALUE</keywords>
+	<keywords>NOMINVALUE</keywords>
+	<keywords>NONCLUSTERED</keywords>
+	<keywords>NONE</keywords>
+	<keywords>NOORDER</keywords>
+	<keywords>NORESETLOGS</keywords>
+	<keywords>NORMAL</keywords>
+	<keywords>NOSORT</keywords>
+	<keywords>NOT</keywords>
+	<keywords>NOTFOUND</keywords>
+	<keywords>NOTRIM</keywords>
+	<keywords>NOWAIT</keywords>
+	<keywords>NULL</keywords>
+	<keywords>NULLIF</keywords>
+	<keywords>NULLVALUE</keywords>
+	<keywords>NUMBER</keywords>
+	<keywords>NUMERIC</keywords>
+	<keywords>OBJECT</keywords>
+	<keywords>NUMPARTS</keywords>
+	<keywords>NVL</keywords>
+	<keywords>OBID</keywords>
+	<keywords>ODBCINFO</keywords>
+	<keywords>OF</keywords>
+	<keywords>OFF</keywords>
+	<keywords>OFFLINE</keywords>
+	<keywords>OFFSETS</keywords>
+	<keywords>OLD</keywords>
+	<keywords>ON</keywords>
+	<keywords>ONCE</keywords>
+	<keywords>ONLINE</keywords>
+	<keywords>ONLY</keywords>
+	<keywords>OPEN</keywords>
+	<keywords>OPERATION</keywords>
+	<keywords>OPENDATASOURCE</keywords>
+	<keywords>OPENQUERY</keywords>
+	<keywords>OPENROWSET</keywords>
+	<keywords>OPTIMAL</keywords>
+	<keywords>OPTIMIZE</keywords>
+	<keywords>OPTION</keywords>
+	<keywords>OR</keywords>
+	<keywords>ORDER</keywords>
+	<keywords>ORDINALITY</keywords>
+	<keywords>OUT</keywords>
+	<keywords>OUTER</keywords>
+	<keywords>OUTPUT</keywords>
+	<keywords>OVER</keywords>
+	<keywords>OVERLAPS</keywords>
+	<keywords>OWN</keywords>
+	<keywords>PACKAGE</keywords>
+	<keywords>PAD</keywords>
+	<keywords>PARAMETER</keywords>
+	<keywords>PARAMETERS</keywords>
+	<keywords>PAGE</keywords>
+	<keywords>PAGES</keywords>
+	<keywords>PARALLEL</keywords>
+	<keywords>PART</keywords>
+	<keywords>PARTIAL</keywords>
+	<keywords>PATH</keywords>
+	<keywords>POSTFIX</keywords>
+	<keywords>PASCAL</keywords>
+	<keywords>PCTFREE</keywords>
+	<keywords>PCTINCREASE</keywords>
+	<keywords>PCTINDEX</keywords>
+	<keywords>PCTUSED</keywords>
+	<keywords>PERCENT</keywords>
+	<keywords>PERM</keywords>
+	<keywords>PERMANENT</keywords>
+	<keywords>PERMIT</keywords>
+	<keywords>PI</keywords>
+	<keywords>PIPE</keywords>
+	<keywords>PLAN</keywords>
+	<keywords>PLI</keywords>
+	<keywords>POSITION</keywords>
+	<keywords>POWER</keywords>
+	<keywords>PRECISION</keywords>
+	<keywords>PREFIX</keywords>
+	<keywords>PREORDER</keywords>
+	<keywords>PREPARE</keywords>
+	<keywords>PRESERVE</keywords>
+	<keywords>PRIMARY</keywords>
+	<keywords>PRINT</keywords>
+	<keywords>PRINTSCREEN</keywords>
+	<keywords>PRIOR</keywords>
+	<keywords>PRIQTY</keywords>
+	<keywords>PRIVATE</keywords>
+	<keywords>PRIVILEGES</keywords>
+	<keywords>PROC</keywords>
+	<keywords>PROCEDURE</keywords>
+	<keywords>PROCESSEXIT</keywords>
+	<keywords>PROFILE</keywords>
+	<keywords>PROGRAM</keywords>
+	<keywords>PROMPT</keywords>
+	<keywords>PUBLIC</keywords>
+	<keywords>PUTFORM</keywords>
+	<keywords>PUTOPER</keywords>
+	<keywords>PUTROW</keywords>
+	<keywords>QUALIFICATION</keywords>
+	<keywords>QUARTER</keywords>
+	<keywords>QUOTA</keywords>
+	<keywords>RADIANS</keywords>
+	<keywords>RAISE</keywords>
+	<keywords>RAISERROR</keywords>
+	<keywords>RAND</keywords>
+	<keywords>RANGE</keywords>
+	<keywords>RAW</keywords>
+	<keywords>READ</keywords>
+	<keywords>READS</keywords>
+	<keywords>READTEXT</keywords>
+	<keywords>REAL</keywords>
+	<keywords>RECURSIVE</keywords>
+	<keywords>REF</keywords>
+	<keywords>RECONFIGURE</keywords>
+	<keywords>RECORD</keywords>
+	<keywords>RECOVER</keywords>
+	<keywords>REDISPLAY</keywords>
+	<keywords>REFERENCES</keywords>
+	<keywords>REFERENCING</keywords>
+	<keywords>RELATIVE</keywords>
+	<keywords>REGISTER</keywords>
+	<keywords>RELEASE</keywords>
+	<keywords>RELOCATE</keywords>
+	<keywords>REMOVE</keywords>
+	<keywords>RENAME</keywords>
+	<keywords>REPEAT</keywords>
+	<keywords>REPEATABLE</keywords>
+	<keywords>REPEATED</keywords>
+	<keywords>REPLACE</keywords>
+	<keywords>REPLICATE</keywords>
+	<keywords>REPLICATION</keywords>
+	<keywords>RESET</keywords>
+	<keywords>RESETLOGS</keywords>
+	<keywords>RESOURCE</keywords>
+	<keywords>RESTORE</keywords>
+	<keywords>RESTRICT</keywords>
+	<keywords>RESULT</keywords>
+	<keywords>RESTRICTED</keywords>
+	<keywords>RESUME</keywords>
+	<keywords>RETRIEVE</keywords>
+	<keywords>RETURN</keywords>
+	<keywords>RETURNS</keywords>
+	<keywords>REUSE</keywords>
+	<keywords>REVOKE</keywords>
+	<keywords>RIGHT</keywords>
+	<keywords>ROLE</keywords>
+	<keywords>ROLES</keywords>
+	<keywords>ROLLBACK</keywords>
+	<keywords>ROLLUP</keywords>
+	<keywords>ROUTINE</keywords>
+	<keywords>ROW</keywords>
+	<keywords>ROWS</keywords>
+	<keywords>ROWCOUNT</keywords>
+	<keywords>ROWGUIDCOL</keywords>
+	<keywords>ROWID</keywords>
+	<keywords>ROWIDTOCHAR</keywords>
+	<keywords>ROWLABEL</keywords>
+	<keywords>ROWNUM</keywords>
+	<keywords>ROWS</keywords>
+	<keywords>RPAD</keywords>
+	<keywords>RRN</keywords>
+	<keywords>RTRIM</keywords>
+	<keywords>RULE</keywords>
+	<keywords>RUN</keywords>
+	<keywords>RUNTIMESTATISTICS</keywords>
+	<keywords>SAVE</keywords>
+	<keywords>SAVEPOINT</keywords>
+	<keywords>SCHEDULE</keywords>
+	<keywords>SCHEMA</keywords>
+	<keywords>SCN</keywords>
+	<keywords>SCREEN</keywords>
+	<keywords>SCROLL</keywords>
+	<keywords>SCOPE</keywords>
+	<keywords>SEARCH</keywords>
+	<keywords>SCROLLDOWN</keywords>
+	<keywords>SCROLLUP</keywords>
+	<keywords>SECOND</keywords>
+	<keywords>SECONDS</keywords>
+	<keywords>SECQTY</keywords>
+	<keywords>SECTION</keywords>
+	<keywords>SEGMENT</keywords>
+	<keywords>SELECT</keywords>
+	<keywords>SEQUENCE</keywords>
+	<keywords>SERIALIZABLE</keywords>
+	<keywords>SERVICE</keywords>
+	<keywords>SESSION</keywords>
+	<keywords>SESSION_USER</keywords>
+	<keywords>SET</keywords>
+	<keywords>SETS</keywords>
+	<keywords>SETUSER</keywords>
+	<keywords>SIN</keywords>
+	<keywords>SIMPLE</keywords>
+	<keywords>SIGN</keywords>
+	<keywords>SHUTDOWN</keywords>
+	<keywords>SHORT</keywords>
+	<keywords>SHARE</keywords>
+	<keywords>SHARED</keywords>
+	<keywords>SETUSER</keywords>
+	<keywords>SIZE</keywords>
+	<keywords>SLEEP</keywords>
+	<keywords>SMALLINT</keywords>
+	<keywords>SNAPSHOT</keywords>
+	<keywords>SOME</keywords>
+	<keywords>SORT</keywords>
+	<keywords>SOUNDEX</keywords>
+	<keywords>SPACE</keywords>
+	<keywords>SPECIFIC</keywords>
+	<keywords>SPECIFICTYPE</keywords>
+	<keywords>SQL</keywords>
+	<keywords>SQLEXCEPTION</keywords>
+	<keywords>SQLBUF</keywords>
+	<keywords>SQLCA</keywords>
+	<keywords>SQLCODE</keywords>
+	<keywords>SQLERROR</keywords>
+	<keywords>SQLSTATE</keywords>
+	<keywords>SQLWARNING</keywords>
+	<keywords>SQRT</keywords>
+	<keywords>START</keywords>
+	<keywords>STATE</keywords>
+	<keywords>STATEMENT</keywords>
+	<keywords>STATIC</keywords>
+	<keywords>STRUCTURE</keywords>
+	<keywords>STATISTICS</keywords>
+	<keywords>STOGROUP</keywords>
+	<keywords>STOP</keywords>
+	<keywords>STORAGE</keywords>
+	<keywords>STORPOOL</keywords>
+	<keywords>SUBMENU</keywords>
+	<keywords>SUBPAGES</keywords>
+	<keywords>SUBSTR</keywords>
+	<keywords>SUBSTRING</keywords>
+	<keywords>SUCCESSFUL</keywords>
+	<keywords>SUFFIX</keywords>
+	<keywords>SUM</keywords>
+	<keywords>SYSTEM_USER</keywords>
+	<keywords>SUMU</keywords>
+	<keywords>SWITCH</keywords>
+	<keywords>SYNONYM</keywords>
+	<keywords>SYSCAT</keywords>
+	<keywords>SYSDATE</keywords>
+	<keywords>SYSFUN</keywords>
+	<keywords>SYSIBM</keywords>
+	<keywords>SYSSTAT</keywords>
+	<keywords>SYSTEM</keywords>
+	<keywords>SYSTIME</keywords>
+	<keywords>SYSTIMESTAMP</keywords>
+	<keywords>TABLE</keywords>
+	<keywords>TABLEDATA</keywords>
+	<keywords>TABLES</keywords>
+	<keywords>TABLESPACE</keywords>
+	<keywords>TAN</keywords>
+	<keywords>TAPE</keywords>
+	<keywords>TEMP</keywords>
+	<keywords>TEMPORARY</keywords>
+	<keywords>TERMINATE</keywords>
+	<keywords>THAN</keywords>
+	<keywords>TEXTSIZE</keywords>
+	<keywords>THEN</keywords>
+	<keywords>THREAD</keywords>
+	<keywords>TIME</keywords>
+	<keywords>TIMEOUT</keywords>
+	<keywords>TIMESTAMP</keywords>
+	<keywords>TIMEZONE_HOUR</keywords>
+	<keywords>TIMEZONE_MINUTE</keywords>
+	<keywords>TINYINT</keywords>
+	<keywords>TO</keywords>
+	<keywords>TOP</keywords>
+	<keywords>TPE</keywords>
+	<keywords>TRACING</keywords>
+	<keywords>TRAILING</keywords>
+	<keywords>TRAN</keywords>
+	<keywords>TRANSACTION</keywords>
+	<keywords>TRANSLATE</keywords>
+	<keywords>TRANSLATION</keywords>
+	<keywords>TREAT</keywords>
+	<keywords>TRIGGER</keywords>
+	<keywords>TRIGGERS</keywords>
+	<keywords>TRIM</keywords>
+	<keywords>TRUE</keywords>
+	<keywords>TRUNCATE</keywords>
+	<keywords>TSEQUAL</keywords>
+	<keywords>TYPE</keywords>
+	<keywords>UID</keywords>
+	<keywords>UNCOMMITTED</keywords>
+	<keywords>UNDER</keywords>
+	<keywords>UNION</keywords>
+	<keywords>UNIQUE</keywords>
+	<keywords>UNKNOWN</keywords>
+	<keywords>UNNEST</keywords>
+	<keywords>UNLIMITED</keywords>
+	<keywords>UNLOADTABLE</keywords>
+	<keywords>UNSIGNED</keywords>
+	<keywords>UNTIL</keywords>
+	<keywords>UP</keywords>
+	<keywords>UPDATE</keywords>
+	<keywords>UPDATETEXT</keywords>
+	<keywords>UPPER</keywords>
+	<keywords>USAGE</keywords>
+	<keywords>USE</keywords>
+	<keywords>USER</keywords>
+	<keywords>USING</keywords>
+	<keywords>UUID</keywords>
+	<keywords>VALIDATE</keywords>
+	<keywords>VALIDPROC</keywords>
+	<keywords>VALIDROW</keywords>
+	<keywords>VALUE</keywords>
+	<keywords>VALUES</keywords>
+	<keywords>VARBINARY</keywords>
+	<keywords>VARCHAR</keywords>
+	<keywords>VARIABLE</keywords>
+	<keywords>VARIABLES</keywords>
+	<keywords>VARYING</keywords>
+	<keywords>VCAT</keywords>
+	<keywords>VERSION</keywords>
+	<keywords>VIEW</keywords>
+	<keywords>VOLUMES</keywords>
+	<keywords>WAITFOR</keywords>
+	<keywords>WEEK</keywords>
+	<keywords>WHEN</keywords>
+	<keywords>WHENEVER</keywords>
+	<keywords>WHERE</keywords>
+	<keywords>WHILE</keywords>
+	<keywords>WITH</keywords>
+	<keywords>WITHOUT</keywords>
+	<keywords>WORK</keywords>
+	<keywords>WRITE</keywords>
+	<keywords>WRITETEXT</keywords>
+	<keywords>YEAR</keywords>
+	<keywords>YEARS</keywords>
+	<keywords>ZONE</keywords>
+  </SQLSyntaxDefinition>
+</DBDefinition:DatabaseVendorDefinition>
diff --git a/plugins/enablement/org.eclipse.datatools.enablement.oracle.ui/plugin.xml b/plugins/enablement/org.eclipse.datatools.enablement.oracle.ui/plugin.xml
index df69564..121ef34 100644
--- a/plugins/enablement/org.eclipse.datatools.enablement.oracle.ui/plugin.xml
+++ b/plugins/enablement/org.eclipse.datatools.enablement.oracle.ui/plugin.xml
@@ -25,6 +25,12 @@
    </extension>
    <extension
          point="org.eclipse.datatools.connectivity.ui.driverPropertyEditor">
+	 <propertyEditor
+            customPropertyDescriptor="org.eclipse.datatools.connectivity.ui.PasswordTextPropertyDescriptor"
+            driverPropertyID="org.eclipse.datatools.connectivity.db.password"
+            driverTemplateID="org.eclipse.datatools.enablement.oracle.12.driverTemplate"
+            id="org.eclipse.datatools.enablement.oracle.12.driverTemplate.password">
+      </propertyEditor>
       <propertyEditor
             customPropertyDescriptor="org.eclipse.datatools.connectivity.ui.PasswordTextPropertyDescriptor"
             driverPropertyID="org.eclipse.datatools.connectivity.db.password"
diff --git a/plugins/enablement/org.eclipse.datatools.enablement.oracle/plugin.properties b/plugins/enablement/org.eclipse.datatools.enablement.oracle/plugin.properties
index c378540..172a8dd 100644
--- a/plugins/enablement/org.eclipse.datatools.enablement.oracle/plugin.properties
+++ b/plugins/enablement/org.eclipse.datatools.enablement.oracle/plugin.properties
@@ -21,15 +21,18 @@
 driverPWD = Password
 
 ORACLE_CATEGORY_NAME = Oracle
+12_VERSION_CATEGORY_NAME = 12
 11_VERSION_CATEGORY_NAME = 11
 10_VERSION_CATEGORY_NAME = 10
 9_VERSION_CATEGORY_NAME = 9
 8_VERSION_CATEGORY_NAME = 8
 
+org.eclipse.datatools.enablement.oracle.12.driverTemplate = Oracle Thin Driver
 org.eclipse.datatools.enablement.oracle.11.driverTemplate = Oracle Thin Driver
 org.eclipse.datatools.enablement.oracle.10.driverTemplate = Oracle Thin Driver
 org.eclipse.datatools.enablement.oracle.9.driverTemplate = Oracle Thin Driver
 org.eclipse.datatools.enablement.oracle.8.driverTemplate = Oracle Thin Driver
+org.eclipse.datatools.enablement.oracle.12.other.driverTemplate = Other Driver
 org.eclipse.datatools.enablement.oracle.11.other.driverTemplate = Other Driver
 org.eclipse.datatools.enablement.oracle.10.other.driverTemplate = Other Driver
 org.eclipse.datatools.enablement.oracle.9.other.driverTemplate = Other Driver
diff --git a/plugins/enablement/org.eclipse.datatools.enablement.oracle/plugin.xml b/plugins/enablement/org.eclipse.datatools.enablement.oracle/plugin.xml
index 398cd8c..3258cfe 100644
--- a/plugins/enablement/org.eclipse.datatools.enablement.oracle/plugin.xml
+++ b/plugins/enablement/org.eclipse.datatools.enablement.oracle/plugin.xml
@@ -24,6 +24,10 @@
       		parentCategory="org.eclipse.datatools.connectivity.db.driverCategory"
             id="org.eclipse.datatools.enablement.oracle.driverCategory"
             name="%ORACLE_CATEGORY_NAME"/>
+		 <category
+      		parentCategory="org.eclipse.datatools.enablement.oracle.driverCategory"
+            id="org.eclipse.datatools.enablement.oracle.12.driverCategory"
+            name="%12_VERSION_CATEGORY_NAME"/>
          <category
       		parentCategory="org.eclipse.datatools.enablement.oracle.driverCategory"
             id="org.eclipse.datatools.enablement.oracle.11.driverCategory"