mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
improved oracle sql parser.
This commit is contained in:
@@ -63,8 +63,8 @@ public class OracleCreateTableTest18 extends OracleTest {
|
||||
"\t\tPCTFREE 10\n" +
|
||||
"\t\tINITRANS 2\n" +
|
||||
"\t\tMAXTRANS 255\n" +
|
||||
"\t\tCOMPUTE STATISTICS\n" +
|
||||
"\t\tTABLESPACE \"USERS\"\n" +
|
||||
"\t\tCOMPUTE STATISTICS\n" +
|
||||
"\t\tENABLE\n" +
|
||||
")\n" +
|
||||
"PCTFREE 10\n" +
|
||||
|
||||
@@ -67,9 +67,7 @@ public class OracleCreateTableTest19 extends OracleTest {
|
||||
"\t\tPCTFREE 10\n" +
|
||||
"\t\tINITRANS 2\n" +
|
||||
"\t\tMAXTRANS 255\n" +
|
||||
"\t\tCOMPUTE STATISTICS\n" +
|
||||
"\t\tTABLESPACE \"USERS\"\n" +
|
||||
"\t\tENABLE\n" +
|
||||
"\t\tSTORAGE (\n" +
|
||||
"\t\t\tINITIAL 65536\n" +
|
||||
"\t\t\tFREELISTS 1\n" +
|
||||
@@ -78,6 +76,8 @@ public class OracleCreateTableTest19 extends OracleTest {
|
||||
"\t\t\tFLASH_CACHE DEFAULT\n" +
|
||||
"\t\t\tCELL_FLASH_CACHE DEFAULT\n" +
|
||||
"\t\t)\n" +
|
||||
"\t\tCOMPUTE STATISTICS\n" +
|
||||
"\t\tENABLE\n" +
|
||||
")\n" +
|
||||
"PCTFREE 10\n" +
|
||||
"PCTUSED 40\n" +
|
||||
|
||||
@@ -68,8 +68,8 @@ public class OracleCreateTableTest20 extends OracleTest {
|
||||
"\t\tPCTFREE 10\n" +
|
||||
"\t\tINITRANS 2\n" +
|
||||
"\t\tMAXTRANS 255\n" +
|
||||
"\t\tCOMPUTE STATISTICS\n" +
|
||||
"\t\tTABLESPACE \"USERS\"\n" +
|
||||
"\t\tCOMPUTE STATISTICS\n" +
|
||||
"\t\tENABLE\n" +
|
||||
")\n" +
|
||||
"PCTFREE 10\n" +
|
||||
@@ -80,12 +80,12 @@ public class OracleCreateTableTest20 extends OracleTest {
|
||||
"LOGGING\n" +
|
||||
"TABLESPACE \"USERS\"\n" +
|
||||
"LOB (\"DATA\") STORE AS SECUREFILE (\n" +
|
||||
"\tNOCOMPRESS\n" +
|
||||
"\tLOGGING\n" +
|
||||
"\tTABLESPACE \"USERS\"\n" +
|
||||
"\tENABLE STORAGE IN ROW\n" +
|
||||
"\tCHUNK 8192\n" +
|
||||
"\tNOCACHE\n" +
|
||||
"\tLOGGING\n" +
|
||||
"\tNOCOMPRESS\n" +
|
||||
"\tKEEP_DUPLICATES\n" +
|
||||
")",//
|
||||
SQLUtils.toSQLString(statement, JdbcConstants.ORACLE));
|
||||
|
||||
@@ -81,9 +81,7 @@ public class OracleCreateTableTest41 extends OracleTest {
|
||||
"\t\tPCTFREE 10\n" +
|
||||
"\t\tINITRANS 2\n" +
|
||||
"\t\tMAXTRANS 255\n" +
|
||||
"\t\tCOMPUTE STATISTICS\n" +
|
||||
"\t\tTABLESPACE \"USERS\"\n" +
|
||||
"\t\tENABLE\n" +
|
||||
"\t\tSTORAGE (\n" +
|
||||
"\t\t\tINITIAL 65536\n" +
|
||||
"\t\t\tFREELISTS 1\n" +
|
||||
@@ -91,7 +89,9 @@ public class OracleCreateTableTest41 extends OracleTest {
|
||||
"\t\t\tBUFFER_POOL DEFAULT\n" +
|
||||
"\t\t\tFLASH_CACHE DEFAULT\n" +
|
||||
"\t\t\tCELL_FLASH_CACHE DEFAULT\n" +
|
||||
"\t\t),\n" +
|
||||
"\t\t)\n" +
|
||||
"\t\tCOMPUTE STATISTICS\n" +
|
||||
"\t\tENABLE,\n" +
|
||||
"\tSUPPLEMENTAL LOG GROUP \"GGS_16346\" (\"NUM\") ALWAYS,\n" +
|
||||
"\tSUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS,\n" +
|
||||
"\tSUPPLEMENTAL LOG DATA (UNIQUE INDEX) COLUMNS,\n" +
|
||||
@@ -115,8 +115,8 @@ public class OracleCreateTableTest41 extends OracleTest {
|
||||
"\tCELL_FLASH_CACHE DEFAULT\n" +
|
||||
")\n" +
|
||||
"LOB (\"CLOB_COL\") STORE AS BASICFILE (\n" +
|
||||
"\tLOGGING\n" +
|
||||
"\tTABLESPACE \"USERS\"\n" +
|
||||
"\tENABLE STORAGE IN ROW\n" +
|
||||
"\tSTORAGE (\n" +
|
||||
"\t\tINITIAL 65536\n" +
|
||||
"\t\tFREELISTS 1\n" +
|
||||
@@ -125,9 +125,9 @@ public class OracleCreateTableTest41 extends OracleTest {
|
||||
"\t\tFLASH_CACHE DEFAULT\n" +
|
||||
"\t\tCELL_FLASH_CACHE DEFAULT\n" +
|
||||
"\t)\n" +
|
||||
"\tENABLE STORAGE IN ROW\n" +
|
||||
"\tCHUNK 8192\n" +
|
||||
"\tNOCACHE\n" +
|
||||
"\tLOGGING\n" +
|
||||
"\tRETENTION\n" +
|
||||
")",//
|
||||
SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE));
|
||||
|
||||
@@ -65,11 +65,11 @@ public class OracleCreateTableTest42 extends OracleTest {
|
||||
"\t\tPCTFREE 10\n" +
|
||||
"\t\tINITRANS 2\n" +
|
||||
"\t\tMAXTRANS 255\n" +
|
||||
"\t\tCOMPUTE STATISTICS\n" +
|
||||
"\t\tTABLESPACE \"USERS\"\n" +
|
||||
"\t\tENABLE\n" +
|
||||
"\t\tNOCOMPRESS\n" +
|
||||
"\t\tLOGGING,\n" +
|
||||
"\t\tLOGGING\n" +
|
||||
"\t\tTABLESPACE \"USERS\"\n" +
|
||||
"\t\tCOMPUTE STATISTICS\n" +
|
||||
"\t\tENABLE,\n" +
|
||||
"\tSUPPLEMENTAL LOG GROUP \"GGS_15754\" (\"GROUP_NAME\", \"GROUP_KEY\", \"LOG_CMPLT_CSN\", \"LOG_CMPLT_XIDS_SEQ\") ALWAYS,\n" +
|
||||
"\tSUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS,\n" +
|
||||
"\tSUPPLEMENTAL LOG DATA (UNIQUE INDEX) COLUMNS,\n" +
|
||||
|
||||
@@ -82,9 +82,7 @@ public class OracleCreateTableTest44 extends OracleTest {
|
||||
"\t\tPCTFREE 10\n" +
|
||||
"\t\tINITRANS 2\n" +
|
||||
"\t\tMAXTRANS 255\n" +
|
||||
"\t\tCOMPUTE STATISTICS\n" +
|
||||
"\t\tTABLESPACE \"USERS\"\n" +
|
||||
"\t\tENABLE\n" +
|
||||
"\t\tSTORAGE (\n" +
|
||||
"\t\t\tINITIAL 65536\n" +
|
||||
"\t\t\tFREELISTS 1\n" +
|
||||
@@ -93,6 +91,8 @@ public class OracleCreateTableTest44 extends OracleTest {
|
||||
"\t\t\tFLASH_CACHE DEFAULT\n" +
|
||||
"\t\t\tCELL_FLASH_CACHE DEFAULT\n" +
|
||||
"\t\t)\n" +
|
||||
"\t\tCOMPUTE STATISTICS\n" +
|
||||
"\t\tENABLE\n" +
|
||||
")\n" +
|
||||
"PCTFREE 10\n" +
|
||||
"PCTUSED 40\n" +
|
||||
@@ -110,8 +110,8 @@ public class OracleCreateTableTest44 extends OracleTest {
|
||||
"\tCELL_FLASH_CACHE DEFAULT\n" +
|
||||
")\n" +
|
||||
"LOB (\"COL9\") STORE AS BASICFILE (\n" +
|
||||
"\tLOGGING\n" +
|
||||
"\tTABLESPACE \"USERS\"\n" +
|
||||
"\tENABLE STORAGE IN ROW\n" +
|
||||
"\tSTORAGE (\n" +
|
||||
"\t\tINITIAL 65536\n" +
|
||||
"\t\tFREELISTS 1\n" +
|
||||
@@ -120,9 +120,9 @@ public class OracleCreateTableTest44 extends OracleTest {
|
||||
"\t\tFLASH_CACHE DEFAULT\n" +
|
||||
"\t\tCELL_FLASH_CACHE DEFAULT\n" +
|
||||
"\t)\n" +
|
||||
"\tENABLE STORAGE IN ROW\n" +
|
||||
"\tCHUNK 8192\n" +
|
||||
"\tNOCACHE\n" +
|
||||
"\tLOGGING\n" +
|
||||
"\tRETENTION\n" +
|
||||
")",//
|
||||
SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE));
|
||||
|
||||
@@ -72,15 +72,15 @@ public class OracleCreateTableTest46 extends OracleTest {
|
||||
"\t\tPCTFREE 10\n" +
|
||||
"\t\tINITRANS 2\n" +
|
||||
"\t\tMAXTRANS 255\n" +
|
||||
"\t\tCOMPUTE STATISTICS\n" +
|
||||
"\t\tTABLESPACE \"APPDATA1M\"\n" +
|
||||
"\t\tENABLE\n" +
|
||||
"\t\tSTORAGE (\n" +
|
||||
"\t\t\tINITIAL 65536\n" +
|
||||
"\t\t\tFREELISTS 1\n" +
|
||||
"\t\t\tFREELIST GROUPS 1\n" +
|
||||
"\t\t\tBUFFER_POOL DEFAULT\n" +
|
||||
"\t\t)\n" +
|
||||
"\t\tCOMPUTE STATISTICS\n" +
|
||||
"\t\tENABLE\n" +
|
||||
")\n" +
|
||||
"PCTFREE 10\n" +
|
||||
"PCTUSED 40\n" +
|
||||
|
||||
@@ -84,15 +84,15 @@ public class OracleCreateTableTest47 extends OracleTest {
|
||||
"\t\tPCTFREE 10\n" +
|
||||
"\t\tINITRANS 2\n" +
|
||||
"\t\tMAXTRANS 255\n" +
|
||||
"\t\tCOMPUTE STATISTICS\n" +
|
||||
"\t\tTABLESPACE \"APPINDX1M\"\n" +
|
||||
"\t\tENABLE\n" +
|
||||
"\t\tSTORAGE (\n" +
|
||||
"\t\t\tINITIAL 4194304\n" +
|
||||
"\t\t\tFREELISTS 1\n" +
|
||||
"\t\t\tFREELIST GROUPS 1\n" +
|
||||
"\t\t\tBUFFER_POOL DEFAULT\n" +
|
||||
"\t\t)\n" +
|
||||
"\t\tCOMPUTE STATISTICS\n" +
|
||||
"\t\tENABLE\n" +
|
||||
")\n" +
|
||||
"PCTFREE 10\n" +
|
||||
"PCTUSED 40\n" +
|
||||
@@ -108,17 +108,17 @@ public class OracleCreateTableTest47 extends OracleTest {
|
||||
"\tBUFFER_POOL DEFAULT\n" +
|
||||
")\n" +
|
||||
"LOB (\"CONTENT\") STORE AS (\n" +
|
||||
"\tLOGGING\n" +
|
||||
"\tTABLESPACE \"APPDATA1M\"\n" +
|
||||
"\tENABLE STORAGE IN ROW\n" +
|
||||
"\tSTORAGE (\n" +
|
||||
"\t\tINITIAL 4194304\n" +
|
||||
"\t\tFREELISTS 1\n" +
|
||||
"\t\tFREELIST GROUPS 1\n" +
|
||||
"\t\tBUFFER_POOL DEFAULT\n" +
|
||||
"\t)\n" +
|
||||
"\tENABLE STORAGE IN ROW\n" +
|
||||
"\tCHUNK 8192\n" +
|
||||
"\tNOCACHE\n" +
|
||||
"\tLOGGING\n" +
|
||||
")",//
|
||||
SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE));
|
||||
|
||||
|
||||
@@ -77,15 +77,15 @@ public class OracleCreateTableTest48 extends OracleTest {
|
||||
"\t\tPCTFREE 10\n" +
|
||||
"\t\tINITRANS 2\n" +
|
||||
"\t\tMAXTRANS 255\n" +
|
||||
"\t\tCOMPUTE STATISTICS\n" +
|
||||
"\t\tTABLESPACE \"BOPSINDXTS\"\n" +
|
||||
"\t\tENABLE\n" +
|
||||
"\t\tSTORAGE (\n" +
|
||||
"\t\t\tINITIAL 65536\n" +
|
||||
"\t\t\tFREELISTS 1\n" +
|
||||
"\t\t\tFREELIST GROUPS 1\n" +
|
||||
"\t\t\tBUFFER_POOL DEFAULT\n" +
|
||||
"\t\t)\n" +
|
||||
"\t\tCOMPUTE STATISTICS\n" +
|
||||
"\t\tENABLE\n" +
|
||||
")\n" +
|
||||
"PCTFREE 10\n" +
|
||||
"PCTUSED 40\n" +
|
||||
|
||||
@@ -178,13 +178,13 @@ public class OracleCreateTableTest49 extends OracleTest {
|
||||
"\tBUFFER_POOL DEFAULT\n" +
|
||||
")\n" +
|
||||
"LOB (\"DETAIL\") STORE AS (\n" +
|
||||
"\tENABLE STORAGE IN ROW\n" +
|
||||
"\tLOGGING\n" +
|
||||
"\tSTORAGE (\n" +
|
||||
"\t\tBUFFER_POOL DEFAULT\n" +
|
||||
"\t)\n" +
|
||||
"\tENABLE STORAGE IN ROW\n" +
|
||||
"\tCHUNK 8192\n" +
|
||||
"\tNOCACHE\n" +
|
||||
"\tLOGGING\n" +
|
||||
")\n" +
|
||||
"PARTITION BY RANGE (\"GMT_CREATE\")\n" +
|
||||
"(\n" +
|
||||
|
||||
@@ -236,10 +236,10 @@ public class OracleCreateTableTest50 extends OracleTest {
|
||||
"\t\tINITRANS 2\n" +
|
||||
"\t\tMAXTRANS 255\n" +
|
||||
"\t\tTABLESPACE NOVALIDATE\n" +
|
||||
"\t\tENABLE\n" +
|
||||
"\t\tSTORAGE (\n" +
|
||||
"\t\t\tBUFFER_POOL DEFAULT\n" +
|
||||
"\t\t)\n" +
|
||||
"\t\tENABLE\n" +
|
||||
")\n" +
|
||||
"PCTFREE 10\n" +
|
||||
"PCTUSED 40\n" +
|
||||
|
||||
@@ -76,15 +76,15 @@ public class OracleCreateTableTest52 extends OracleTest {
|
||||
"\t\tPCTFREE 10\n" +
|
||||
"\t\tINITRANS 2\n" +
|
||||
"\t\tMAXTRANS 255\n" +
|
||||
"\t\tCOMPUTE STATISTICS\n" +
|
||||
"\t\tTABLESPACE \"APPDATA1M\"\n" +
|
||||
"\t\tENABLE\n" +
|
||||
"\t\tSTORAGE (\n" +
|
||||
"\t\t\tINITIAL 65536\n" +
|
||||
"\t\t\tFREELISTS 1\n" +
|
||||
"\t\t\tFREELIST GROUPS 1\n" +
|
||||
"\t\t\tBUFFER_POOL DEFAULT\n" +
|
||||
"\t\t)\n" +
|
||||
"\t\tCOMPUTE STATISTICS\n" +
|
||||
"\t\tENABLE\n" +
|
||||
")\n" +
|
||||
"PCTFREE 10\n" +
|
||||
"PCTUSED 40\n" +
|
||||
|
||||
@@ -78,15 +78,15 @@ public class OracleCreateTableTest53 extends OracleTest {
|
||||
"\t\tPCTFREE 10\n" +
|
||||
"\t\tINITRANS 2\n" +
|
||||
"\t\tMAXTRANS 255\n" +
|
||||
"\t\tCOMPUTE STATISTICS\n" +
|
||||
"\t\tTABLESPACE \"SYSTEM\"\n" +
|
||||
"\t\tENABLE\n" +
|
||||
"\t\tSTORAGE (\n" +
|
||||
"\t\t\tINITIAL 65536\n" +
|
||||
"\t\t\tFREELISTS 1\n" +
|
||||
"\t\t\tFREELIST GROUPS 1\n" +
|
||||
"\t\t\tBUFFER_POOL DEFAULT\n" +
|
||||
"\t\t),\n" +
|
||||
"\t\t)\n" +
|
||||
"\t\tCOMPUTE STATISTICS\n" +
|
||||
"\t\tENABLE,\n" +
|
||||
"\tFOREIGN KEY (\"RUNID\", \"UNIT_NUMBER\")\n" +
|
||||
"\t\tREFERENCES \"B2BDBA\".\"PLSQL_PROFILER_UNITS\" (\"RUNID\", \"UNIT_NUMBER\") ENABLE\n" +
|
||||
")\n" +
|
||||
|
||||
@@ -68,17 +68,17 @@ public class OracleCreateTableTest55 extends OracleTest {
|
||||
"\tBUFFER_POOL DEFAULT\n" +
|
||||
")\n" +
|
||||
"LOB (\"C\") STORE AS (\n" +
|
||||
"\tLOGGING\n" +
|
||||
"\tTABLESPACE \"USERS\"\n" +
|
||||
"\tDISABLE STORAGE IN ROW\n" +
|
||||
"\tSTORAGE (\n" +
|
||||
"\t\tINITIAL 1048576\n" +
|
||||
"\t\tFREELISTS 1\n" +
|
||||
"\t\tFREELIST GROUPS 1\n" +
|
||||
"\t\tBUFFER_POOL DEFAULT\n" +
|
||||
"\t)\n" +
|
||||
"\tDISABLE STORAGE IN ROW\n" +
|
||||
"\tCHUNK 8192\n" +
|
||||
"\tNOCACHE\n" +
|
||||
"\tLOGGING\n" +
|
||||
")",//
|
||||
SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE));
|
||||
|
||||
|
||||
@@ -71,15 +71,15 @@ public class OracleCreateTableTest56 extends OracleTest {
|
||||
"\t\tPCTFREE 10\n" +
|
||||
"\t\tINITRANS 2\n" +
|
||||
"\t\tMAXTRANS 255\n" +
|
||||
"\t\tCOMPUTE STATISTICS\n" +
|
||||
"\t\tTABLESPACE \"PERFSTAT\"\n" +
|
||||
"\t\tENABLE\n" +
|
||||
"\t\tSTORAGE (\n" +
|
||||
"\t\t\tINITIAL 1048576\n" +
|
||||
"\t\t\tFREELISTS 1\n" +
|
||||
"\t\t\tFREELIST GROUPS 1\n" +
|
||||
"\t\t\tBUFFER_POOL DEFAULT\n" +
|
||||
"\t\t),\n" +
|
||||
"\t\t)\n" +
|
||||
"\t\tCOMPUTE STATISTICS\n" +
|
||||
"\t\tENABLE,\n" +
|
||||
"\tCONSTRAINT \"STATS$BG_EVENT_SUMMARY_FK\" FOREIGN KEY (\"SNAP_ID\", \"DBID\", \"INSTANCE_NUMBER\")\n" +
|
||||
"\t\tREFERENCES \"PERFSTAT\".\"STATS$SNAPSHOT\" (\"SNAP_ID\", \"DBID\", \"INSTANCE_NUMBER\")\n" +
|
||||
"\t\tON DELETE CASCADE ENABLE\n" +
|
||||
|
||||
@@ -169,15 +169,15 @@ public class OracleCreateTableTest57 extends OracleTest {
|
||||
"\t\tPCTFREE 10\n" +
|
||||
"\t\tINITRANS 2\n" +
|
||||
"\t\tMAXTRANS 255\n" +
|
||||
"\t\tCOMPUTE STATISTICS\n" +
|
||||
"\t\tTABLESPACE \"APPINDX1M\"\n" +
|
||||
"\t\tENABLE\n" +
|
||||
"\t\tSTORAGE (\n" +
|
||||
"\t\t\tINITIAL 83886080\n" +
|
||||
"\t\t\tFREELISTS 1\n" +
|
||||
"\t\t\tFREELIST GROUPS 1\n" +
|
||||
"\t\t\tBUFFER_POOL DEFAULT\n" +
|
||||
"\t\t)\n" +
|
||||
"\t\tCOMPUTE STATISTICS\n" +
|
||||
"\t\tENABLE\n" +
|
||||
")\n" +
|
||||
"CLUSTER \"SEARCHTEST\".\"CLUSTER_PRODUCT_COMPANY_ID\" (\"COMPANY_ID\")",//
|
||||
SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE));
|
||||
|
||||
@@ -79,12 +79,12 @@ public class OracleCreateTableTest58 extends OracleTest {
|
||||
"\t\tPCTFREE 10\n" +
|
||||
"\t\tINITRANS 2\n" +
|
||||
"\t\tMAXTRANS 255\n" +
|
||||
"\t\tLOGGING\n" +
|
||||
"\t\tTABLESPACE \"APPINDX1K\"\n" +
|
||||
"\t\tENABLE\n" +
|
||||
"\t\tSTORAGE (\n" +
|
||||
"\t\t\tBUFFER_POOL DEFAULT\n" +
|
||||
"\t\t)\n" +
|
||||
"\t\tLOGGING\n" +
|
||||
"\t\tENABLE\n" +
|
||||
")\n" +
|
||||
"PCTFREE 10\n" +
|
||||
"PCTUSED 40\n" +
|
||||
|
||||
@@ -94,9 +94,7 @@ public class OracleCreateTableTest61 extends OracleTest {
|
||||
"\t\tPCTFREE 10\n" +
|
||||
"\t\tINITRANS 2\n" +
|
||||
"\t\tMAXTRANS 255\n" +
|
||||
"\t\tCOMPUTE STATISTICS\n" +
|
||||
"\t\tTABLESPACE \"NIRVANA1M_IND\"\n" +
|
||||
"\t\tENABLE\n" +
|
||||
"\t\tSTORAGE (\n" +
|
||||
"\t\t\tINITIAL 1048576\n" +
|
||||
"\t\t\tFREELISTS 1\n" +
|
||||
@@ -104,7 +102,9 @@ public class OracleCreateTableTest61 extends OracleTest {
|
||||
"\t\t\tBUFFER_POOL DEFAULT\n" +
|
||||
"\t\t\tFLASH_CACHE DEFAULT\n" +
|
||||
"\t\t\tCELL_FLASH_CACHE DEFAULT\n" +
|
||||
"\t\t),\n" +
|
||||
"\t\t)\n" +
|
||||
"\t\tCOMPUTE STATISTICS\n" +
|
||||
"\t\tENABLE,\n" +
|
||||
"\tCONSTRAINT \"FK_ADMIN_MA_REFERENCE_ADMIN_MA\" FOREIGN KEY (\"MAIL_CATEGORY_ID\")\n" +
|
||||
"\t\tREFERENCES \"NIRVANA\".\"ADMIN_MAIL_CATEGORY\" (\"ID\") ENABLE\n" +
|
||||
")\n" +
|
||||
@@ -124,8 +124,8 @@ public class OracleCreateTableTest61 extends OracleTest {
|
||||
"\tCELL_FLASH_CACHE DEFAULT\n" +
|
||||
")\n" +
|
||||
"LOB (\"CONTENT\") STORE AS BASICFILE (\n" +
|
||||
"\tLOGGING\n" +
|
||||
"\tTABLESPACE \"NIRVANA1M\"\n" +
|
||||
"\tENABLE STORAGE IN ROW\n" +
|
||||
"\tSTORAGE (\n" +
|
||||
"\t\tINITIAL 1048576\n" +
|
||||
"\t\tFREELISTS 1\n" +
|
||||
@@ -134,9 +134,9 @@ public class OracleCreateTableTest61 extends OracleTest {
|
||||
"\t\tFLASH_CACHE DEFAULT\n" +
|
||||
"\t\tCELL_FLASH_CACHE DEFAULT\n" +
|
||||
"\t)\n" +
|
||||
"\tENABLE STORAGE IN ROW\n" +
|
||||
"\tCHUNK 8192\n" +
|
||||
"\tNOCACHE\n" +
|
||||
"\tLOGGING\n" +
|
||||
")",//
|
||||
SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE));
|
||||
|
||||
|
||||
@@ -0,0 +1,94 @@
|
||||
/*
|
||||
* Copyright 1999-2017 Alibaba Group Holding Ltd.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.alibaba.druid.bvt.sql.oracle.create;
|
||||
|
||||
import com.alibaba.druid.sql.OracleTest;
|
||||
import com.alibaba.druid.sql.SQLUtils;
|
||||
import com.alibaba.druid.sql.ast.SQLStatement;
|
||||
import com.alibaba.druid.sql.dialect.oracle.parser.OracleStatementParser;
|
||||
import com.alibaba.druid.sql.dialect.oracle.visitor.OracleSchemaStatVisitor;
|
||||
import com.alibaba.druid.stat.TableStat;
|
||||
import com.alibaba.druid.util.JdbcConstants;
|
||||
import org.junit.Assert;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class OracleCreateTableTest63 extends OracleTest {
|
||||
|
||||
public void test_types() throws Exception {
|
||||
String sql = //
|
||||
" CREATE TABLE \"SC_001\".\"TB_001\" OF \"ZHANGZJ\".\"T_OBJECT\" \n" +
|
||||
" OIDINDEX ( PCTFREE 10 INITRANS 2 MAXTRANS 255 \n" +
|
||||
" STORAGE(INITIAL 1048576 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645\n" +
|
||||
" PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)\n" +
|
||||
" TABLESPACE \"USERS\" ) \n" +
|
||||
" PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING\n" +
|
||||
" STORAGE(INITIAL 1048576 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645\n" +
|
||||
" PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)\n" +
|
||||
" TABLESPACE \"USERS\" ";
|
||||
|
||||
OracleStatementParser parser = new OracleStatementParser(sql);
|
||||
List<SQLStatement> statementList = parser.parseStatementList();
|
||||
SQLStatement stmt = statementList.get(0);
|
||||
print(statementList);
|
||||
|
||||
Assert.assertEquals(1, statementList.size());
|
||||
|
||||
Assert.assertEquals("CREATE TABLE \"SC_001\".\"TB_001\"\n" +
|
||||
"OF \"ZHANGZJ\".\"T_OBJECT\"\n" +
|
||||
"OIDINDEX (\n" +
|
||||
"\tPCTFREE 10\n" +
|
||||
"\tINITRANS 2\n" +
|
||||
"\tMAXTRANS 255\n" +
|
||||
"\tTABLESPACE \"USERS\"\n" +
|
||||
"\tSTORAGE (\n" +
|
||||
"\t\tINITIAL 1048576\n" +
|
||||
"\t\tFREELISTS 1\n" +
|
||||
"\t\tFREELIST GROUPS 1\n" +
|
||||
"\t\tBUFFER_POOL DEFAULT\n" +
|
||||
"\t)\n" +
|
||||
")\n" +
|
||||
"PCTFREE 10\n" +
|
||||
"PCTUSED 40\n" +
|
||||
"INITRANS 1\n" +
|
||||
"MAXTRANS 255\n" +
|
||||
"NOCOMPRESS\n" +
|
||||
"LOGGING\n" +
|
||||
"TABLESPACE \"USERS\"\n" +
|
||||
"STORAGE (\n" +
|
||||
"\tINITIAL 1048576\n" +
|
||||
"\tFREELISTS 1\n" +
|
||||
"\tFREELIST GROUPS 1\n" +
|
||||
"\tBUFFER_POOL DEFAULT\n" +
|
||||
")",//
|
||||
SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE));
|
||||
|
||||
OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor();
|
||||
stmt.accept(visitor);
|
||||
|
||||
System.out.println("Tables : " + visitor.getTables());
|
||||
System.out.println("fields : " + visitor.getColumns());
|
||||
System.out.println("coditions : " + visitor.getConditions());
|
||||
System.out.println("relationships : " + visitor.getRelationships());
|
||||
System.out.println("orderBy : " + visitor.getOrderByColumns());
|
||||
|
||||
Assert.assertEquals(1, visitor.getTables().size());
|
||||
|
||||
Assert.assertEquals(0, visitor.getColumns().size());
|
||||
|
||||
// Assert.assertTrue(visitor.getColumns().contains(new TableStat.Column("SC_001.TB_001", "MEMBER_ID")));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,141 @@
|
||||
/*
|
||||
* Copyright 1999-2017 Alibaba Group Holding Ltd.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.alibaba.druid.bvt.sql.oracle.create;
|
||||
|
||||
import com.alibaba.druid.sql.OracleTest;
|
||||
import com.alibaba.druid.sql.SQLUtils;
|
||||
import com.alibaba.druid.sql.ast.SQLStatement;
|
||||
import com.alibaba.druid.sql.dialect.oracle.parser.OracleStatementParser;
|
||||
import com.alibaba.druid.sql.dialect.oracle.visitor.OracleSchemaStatVisitor;
|
||||
import com.alibaba.druid.stat.TableStat;
|
||||
import com.alibaba.druid.util.JdbcConstants;
|
||||
import org.junit.Assert;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class OracleCreateTableTest64 extends OracleTest {
|
||||
|
||||
public void test_types() throws Exception {
|
||||
String sql = //
|
||||
" CREATE TABLE \"SC_001\".\"TB_001\" \n" +
|
||||
" (\t\"STOREID\" VARCHAR2(40) NOT NULL ENABLE, \n" +
|
||||
"\t\"OPPTIME\" DATE, \n" +
|
||||
"\t\"CREATETIME\" DATE, \n" +
|
||||
"\t\"NAME\" VARCHAR2(254), \n" +
|
||||
"\t\"FILEPATH\" VARCHAR2(254), \n" +
|
||||
"\t\"FILENAME\" VARCHAR2(64), \n" +
|
||||
"\t\"EVENTCODE\" VARCHAR2(200), \n" +
|
||||
"\t\"FILECODE\" VARCHAR2(200), \n" +
|
||||
"\t\"RESULTCODE\" VARCHAR2(200), \n" +
|
||||
"\t\"RESULTMESSAGE\" VARCHAR2(4000), \n" +
|
||||
"\t\"RESULTMEMO\" VARCHAR2(200), \n" +
|
||||
"\t\"STATUSCODE\" VARCHAR2(200), \n" +
|
||||
"\t\"STATUSMESSAGE\" VARCHAR2(4000), \n" +
|
||||
"\t\"UPLOADSUCCESS\" VARCHAR2(200), \n" +
|
||||
"\t\"BZ\" VARCHAR2(4000), \n" +
|
||||
"\t\"DATACOUNT\" NUMBER, \n" +
|
||||
"\t\"FILECONTS\" CLOB, \n" +
|
||||
"\t\"XFJBH\" VARCHAR2(38)\n" +
|
||||
" ) SEGMENT CREATION IMMEDIATE \n" +
|
||||
" PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 \n" +
|
||||
" NOCOMPRESS NOLOGGING\n" +
|
||||
" STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645\n" +
|
||||
" PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1\n" +
|
||||
" BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)\n" +
|
||||
" TABLESPACE \"XINFANG\" \n" +
|
||||
" LOB (\"FILECONTS\") STORE AS BASICFILE (\n" +
|
||||
" TABLESPACE \"XINFANG\" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION \n" +
|
||||
" NOCACHE NOLOGGING \n" +
|
||||
" STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645\n" +
|
||||
" PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1\n" +
|
||||
" BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) ";
|
||||
|
||||
OracleStatementParser parser = new OracleStatementParser(sql);
|
||||
List<SQLStatement> statementList = parser.parseStatementList();
|
||||
SQLStatement stmt = statementList.get(0);
|
||||
print(statementList);
|
||||
|
||||
Assert.assertEquals(1, statementList.size());
|
||||
|
||||
Assert.assertEquals("CREATE TABLE \"SC_001\".\"TB_001\" (\n" +
|
||||
"\t\"STOREID\" VARCHAR2(40) NOT NULL ENABLE,\n" +
|
||||
"\t\"OPPTIME\" DATE,\n" +
|
||||
"\t\"CREATETIME\" DATE,\n" +
|
||||
"\t\"NAME\" VARCHAR2(254),\n" +
|
||||
"\t\"FILEPATH\" VARCHAR2(254),\n" +
|
||||
"\t\"FILENAME\" VARCHAR2(64),\n" +
|
||||
"\t\"EVENTCODE\" VARCHAR2(200),\n" +
|
||||
"\t\"FILECODE\" VARCHAR2(200),\n" +
|
||||
"\t\"RESULTCODE\" VARCHAR2(200),\n" +
|
||||
"\t\"RESULTMESSAGE\" VARCHAR2(4000),\n" +
|
||||
"\t\"RESULTMEMO\" VARCHAR2(200),\n" +
|
||||
"\t\"STATUSCODE\" VARCHAR2(200),\n" +
|
||||
"\t\"STATUSMESSAGE\" VARCHAR2(4000),\n" +
|
||||
"\t\"UPLOADSUCCESS\" VARCHAR2(200),\n" +
|
||||
"\t\"BZ\" VARCHAR2(4000),\n" +
|
||||
"\t\"DATACOUNT\" NUMBER,\n" +
|
||||
"\t\"FILECONTS\" CLOB,\n" +
|
||||
"\t\"XFJBH\" VARCHAR2(38)\n" +
|
||||
")\n" +
|
||||
"PCTFREE 10\n" +
|
||||
"PCTUSED 40\n" +
|
||||
"INITRANS 1\n" +
|
||||
"MAXTRANS 255\n" +
|
||||
"NOCOMPRESS\n" +
|
||||
"NOLOGGING\n" +
|
||||
"TABLESPACE \"XINFANG\"\n" +
|
||||
"STORAGE (\n" +
|
||||
"\tINITIAL 65536\n" +
|
||||
"\tFREELISTS 1\n" +
|
||||
"\tFREELIST GROUPS 1\n" +
|
||||
"\tBUFFER_POOL DEFAULT\n" +
|
||||
"\tFLASH_CACHE DEFAULT\n" +
|
||||
"\tCELL_FLASH_CACHE DEFAULT\n" +
|
||||
")\n" +
|
||||
"LOB (\"FILECONTS\") STORE AS BASICFILE (\n" +
|
||||
"\tNOLOGGING\n" +
|
||||
"\tTABLESPACE \"XINFANG\"\n" +
|
||||
"\tSTORAGE (\n" +
|
||||
"\t\tINITIAL 65536\n" +
|
||||
"\t\tFREELISTS 1\n" +
|
||||
"\t\tFREELIST GROUPS 1\n" +
|
||||
"\t\tBUFFER_POOL DEFAULT\n" +
|
||||
"\t\tFLASH_CACHE DEFAULT\n" +
|
||||
"\t\tCELL_FLASH_CACHE DEFAULT\n" +
|
||||
"\t)\n" +
|
||||
"\tENABLE STORAGE IN ROW\n" +
|
||||
"\tCHUNK 8192\n" +
|
||||
"\tNOCACHE\n" +
|
||||
"\tRETENTION\n" +
|
||||
")",//
|
||||
SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE));
|
||||
|
||||
OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor();
|
||||
stmt.accept(visitor);
|
||||
|
||||
System.out.println("Tables : " + visitor.getTables());
|
||||
System.out.println("fields : " + visitor.getColumns());
|
||||
System.out.println("coditions : " + visitor.getConditions());
|
||||
System.out.println("relationships : " + visitor.getRelationships());
|
||||
System.out.println("orderBy : " + visitor.getOrderByColumns());
|
||||
|
||||
Assert.assertEquals(1, visitor.getTables().size());
|
||||
|
||||
Assert.assertEquals(18, visitor.getColumns().size());
|
||||
|
||||
Assert.assertTrue(visitor.getColumns().contains(new TableStat.Column("SC_001.TB_001", "STOREID")));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,142 @@
|
||||
/*
|
||||
* Copyright 1999-2017 Alibaba Group Holding Ltd.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.alibaba.druid.bvt.sql.oracle.create;
|
||||
|
||||
import com.alibaba.druid.sql.OracleTest;
|
||||
import com.alibaba.druid.sql.SQLUtils;
|
||||
import com.alibaba.druid.sql.ast.SQLStatement;
|
||||
import com.alibaba.druid.sql.dialect.oracle.parser.OracleStatementParser;
|
||||
import com.alibaba.druid.sql.dialect.oracle.visitor.OracleSchemaStatVisitor;
|
||||
import com.alibaba.druid.stat.TableStat;
|
||||
import com.alibaba.druid.util.JdbcConstants;
|
||||
import org.junit.Assert;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class OracleCreateTableTest65 extends OracleTest {
|
||||
|
||||
public void test_types() throws Exception {
|
||||
String sql = //
|
||||
" CREATE TABLE \"SC_001\".\"TB_001\" \n" +
|
||||
" (\t\"ID_\" NVARCHAR2(64) NOT NULL ENABLE, \n" +
|
||||
"\t\"PROC_DEF_ID_\" NVARCHAR2(64), \n" +
|
||||
"\t\"TASK_DEF_KEY_\" NVARCHAR2(255), \n" +
|
||||
"\t\"PROC_INST_ID_\" NVARCHAR2(64), \n" +
|
||||
"\t\"EXECUTION_ID_\" NVARCHAR2(64), \n" +
|
||||
"\t\"PARENT_TASK_ID_\" NVARCHAR2(64), \n" +
|
||||
"\t\"NAME_\" NVARCHAR2(255), \n" +
|
||||
"\t\"DESCRIPTION_\" NVARCHAR2(2000), \n" +
|
||||
"\t\"OWNER_\" NVARCHAR2(255), \n" +
|
||||
"\t\"ASSIGNEE_\" NVARCHAR2(255), \n" +
|
||||
"\t\"START_TIME_\" TIMESTAMP (6) NOT NULL ENABLE, \n" +
|
||||
"\t\"CLAIM_TIME_\" TIMESTAMP (6), \n" +
|
||||
"\t\"END_TIME_\" TIMESTAMP (6), \n" +
|
||||
"\t\"DURATION_\" NUMBER(19,0), \n" +
|
||||
"\t\"DELETE_REASON_\" NVARCHAR2(2000), \n" +
|
||||
"\t\"PRIORITY_\" NUMBER(*,0), \n" +
|
||||
"\t\"DUE_DATE_\" TIMESTAMP (6), \n" +
|
||||
"\t\"FORM_KEY_\" NVARCHAR2(255), \n" +
|
||||
"\t PRIMARY KEY (\"ID_\")\n" +
|
||||
" USING INDEX REVERSE PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS \n" +
|
||||
" STORAGE(INITIAL 196608 NEXT 8388608 MINEXTENTS 1 MAXEXTENTS 2147483645\n" +
|
||||
" PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1\n" +
|
||||
" BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)\n" +
|
||||
" TABLESPACE \"RDP_IDX\" ENABLE\n" +
|
||||
" ) SEGMENT CREATION IMMEDIATE \n" +
|
||||
" PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 \n" +
|
||||
" NOCOMPRESS LOGGING\n" +
|
||||
" STORAGE(INITIAL 2097152 NEXT 8388608 MINEXTENTS 1 MAXEXTENTS 2147483645\n" +
|
||||
" PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1\n" +
|
||||
" BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)\n" +
|
||||
" TABLESPACE \"RDP_DATA\" ";
|
||||
|
||||
OracleStatementParser parser = new OracleStatementParser(sql);
|
||||
List<SQLStatement> statementList = parser.parseStatementList();
|
||||
SQLStatement stmt = statementList.get(0);
|
||||
print(statementList);
|
||||
|
||||
Assert.assertEquals(1, statementList.size());
|
||||
|
||||
Assert.assertEquals("CREATE TABLE \"SC_001\".\"TB_001\" (\n" +
|
||||
"\t\"ID_\" NVARCHAR2(64) NOT NULL ENABLE,\n" +
|
||||
"\t\"PROC_DEF_ID_\" NVARCHAR2(64),\n" +
|
||||
"\t\"TASK_DEF_KEY_\" NVARCHAR2(255),\n" +
|
||||
"\t\"PROC_INST_ID_\" NVARCHAR2(64),\n" +
|
||||
"\t\"EXECUTION_ID_\" NVARCHAR2(64),\n" +
|
||||
"\t\"PARENT_TASK_ID_\" NVARCHAR2(64),\n" +
|
||||
"\t\"NAME_\" NVARCHAR2(255),\n" +
|
||||
"\t\"DESCRIPTION_\" NVARCHAR2(2000),\n" +
|
||||
"\t\"OWNER_\" NVARCHAR2(255),\n" +
|
||||
"\t\"ASSIGNEE_\" NVARCHAR2(255),\n" +
|
||||
"\t\"START_TIME_\" TIMESTAMP(6) NOT NULL ENABLE,\n" +
|
||||
"\t\"CLAIM_TIME_\" TIMESTAMP(6),\n" +
|
||||
"\t\"END_TIME_\" TIMESTAMP(6),\n" +
|
||||
"\t\"DURATION_\" NUMBER(19, 0),\n" +
|
||||
"\t\"DELETE_REASON_\" NVARCHAR2(2000),\n" +
|
||||
"\t\"PRIORITY_\" NUMBER(*, 0),\n" +
|
||||
"\t\"DUE_DATE_\" TIMESTAMP(6),\n" +
|
||||
"\t\"FORM_KEY_\" NVARCHAR2(255),\n" +
|
||||
"\tPRIMARY KEY (\"ID_\")\n" +
|
||||
"\t\tUSING INDEX\n" +
|
||||
"\t\tPCTFREE 10\n" +
|
||||
"\t\tINITRANS 2\n" +
|
||||
"\t\tMAXTRANS 255\n" +
|
||||
"\t\tTABLESPACE \"RDP_IDX\"\n" +
|
||||
"\t\tSTORAGE (\n" +
|
||||
"\t\t\tINITIAL 196608\n" +
|
||||
"\t\t\tFREELISTS 1\n" +
|
||||
"\t\t\tFREELIST GROUPS 1\n" +
|
||||
"\t\t\tBUFFER_POOL DEFAULT\n" +
|
||||
"\t\t\tFLASH_CACHE DEFAULT\n" +
|
||||
"\t\t\tCELL_FLASH_CACHE DEFAULT\n" +
|
||||
"\t\t)\n" +
|
||||
"\t\tCOMPUTE STATISTICS\n" +
|
||||
"\t\tENABLE\n" +
|
||||
"\t\tREVERSE\n" +
|
||||
")\n" +
|
||||
"PCTFREE 10\n" +
|
||||
"PCTUSED 40\n" +
|
||||
"INITRANS 1\n" +
|
||||
"MAXTRANS 255\n" +
|
||||
"NOCOMPRESS\n" +
|
||||
"LOGGING\n" +
|
||||
"TABLESPACE \"RDP_DATA\"\n" +
|
||||
"STORAGE (\n" +
|
||||
"\tINITIAL 2097152\n" +
|
||||
"\tFREELISTS 1\n" +
|
||||
"\tFREELIST GROUPS 1\n" +
|
||||
"\tBUFFER_POOL DEFAULT\n" +
|
||||
"\tFLASH_CACHE DEFAULT\n" +
|
||||
"\tCELL_FLASH_CACHE DEFAULT\n" +
|
||||
")",//
|
||||
SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE));
|
||||
|
||||
OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor();
|
||||
stmt.accept(visitor);
|
||||
|
||||
System.out.println("Tables : " + visitor.getTables());
|
||||
System.out.println("fields : " + visitor.getColumns());
|
||||
System.out.println("coditions : " + visitor.getConditions());
|
||||
System.out.println("relationships : " + visitor.getRelationships());
|
||||
System.out.println("orderBy : " + visitor.getOrderByColumns());
|
||||
|
||||
Assert.assertEquals(1, visitor.getTables().size());
|
||||
|
||||
Assert.assertEquals(18, visitor.getColumns().size());
|
||||
|
||||
Assert.assertTrue(visitor.getColumns().contains(new TableStat.Column("SC_001.TB_001", "ID_")));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,366 @@
|
||||
/*
|
||||
* Copyright 1999-2017 Alibaba Group Holding Ltd.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.alibaba.druid.bvt.sql.oracle.create;
|
||||
|
||||
import com.alibaba.druid.sql.OracleTest;
|
||||
import com.alibaba.druid.sql.SQLUtils;
|
||||
import com.alibaba.druid.sql.ast.SQLStatement;
|
||||
import com.alibaba.druid.sql.dialect.oracle.parser.OracleStatementParser;
|
||||
import com.alibaba.druid.sql.dialect.oracle.visitor.OracleSchemaStatVisitor;
|
||||
import com.alibaba.druid.stat.TableStat;
|
||||
import com.alibaba.druid.util.JdbcConstants;
|
||||
import org.junit.Assert;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class OracleCreateTableTest66 extends OracleTest {
|
||||
|
||||
public void test_types() throws Exception {
|
||||
String sql = //
|
||||
" CREATE TABLE \"SC_001\".\"TB_001\" \n" +
|
||||
" (\t\"ID\" VARCHAR2(32) DEFAULT Sys_guid() NOT NULL ENABLE, \n" +
|
||||
"\t\"ISDEL\" NUMBER(1,0) DEFAULT 0, \n" +
|
||||
"\t\"DATAVERSION\" CHAR(14) DEFAULT to_char(sysdate,'yyyymmddhh24miss'), \n" +
|
||||
"\t\"LRR_SFZH\" VARCHAR2(50), \n" +
|
||||
"\t\"LRSJ\" DATE DEFAULT sysdate, \n" +
|
||||
"\t\"JQZT\" VARCHAR2(10), \n" +
|
||||
"\t\"JQDD\" VARCHAR2(200), \n" +
|
||||
"\t\"BJFS\" VARCHAR2(10), \n" +
|
||||
"\t\"BJSJ\" DATE, \n" +
|
||||
"\t\"BJR\" VARCHAR2(150), \n" +
|
||||
"\t\"BJDH\" VARCHAR2(50), \n" +
|
||||
"\t\"BJNR\" VARCHAR2(4000), \n" +
|
||||
"\t\"PDDDSJ\" DATE, \n" +
|
||||
"\t\"PDJSSJ\" DATE, \n" +
|
||||
"\t\"CJMJ\" VARCHAR2(50), \n" +
|
||||
"\t\"CJDW\" VARCHAR2(50), \n" +
|
||||
"\t\"CJSJ\" DATE, \n" +
|
||||
"\t\"DDXCSJ\" DATE, \n" +
|
||||
"\t\"CJCS\" VARCHAR2(2000), \n" +
|
||||
"\t\"CJJG\" VARCHAR2(2000), \n" +
|
||||
"\t\"GZYQ\" VARCHAR2(2000), \n" +
|
||||
"\t\"JQBH\" VARCHAR2(30), \n" +
|
||||
"\t\"XGR_SFZH\" VARCHAR2(50), \n" +
|
||||
"\t\"XGSJ\" DATE DEFAULT sysdate, \n" +
|
||||
"\t\"AJLY\" VARCHAR2(10) DEFAULT '03', \n" +
|
||||
"\t\"JQMC\" VARCHAR2(200), \n" +
|
||||
"\t\"CJJGSM\" VARCHAR2(2000), \n" +
|
||||
"\t\"CJMJ_XM\" VARCHAR2(200), \n" +
|
||||
"\t\"CJDW_MC\" VARCHAR2(200), \n" +
|
||||
"\t\"JQLB\" VARCHAR2(20), \n" +
|
||||
"\t\"XXLX\" VARCHAR2(20), \n" +
|
||||
"\t\"JJDBH\" VARCHAR2(50), \n" +
|
||||
"\t\"XZQH\" VARCHAR2(50), \n" +
|
||||
"\t\"CBQY_BH\" VARCHAR2(50), \n" +
|
||||
"\t\"SJLY\" VARCHAR2(200) DEFAULT '????', \n" +
|
||||
"\t\"GXDWDM\" VARCHAR2(20), \n" +
|
||||
"\t\"BJLXDM\" VARCHAR2(20), \n" +
|
||||
"\t\"BJXLDM\" VARCHAR2(20), \n" +
|
||||
"\t\"CJDW_OLD\" VARCHAR2(50), \n" +
|
||||
"\t\"JQLY\" VARCHAR2(20), \n" +
|
||||
"\t\"IS_AJ_ANALYZE\" VARCHAR2(1) DEFAULT '9', \n" +
|
||||
"\t\"SJJE\" VARCHAR2(20), \n" +
|
||||
"\t\"YSDWFL\" VARCHAR2(5), \n" +
|
||||
"\t\"YSDWMC\" VARCHAR2(50), \n" +
|
||||
"\t\"YSDWCBR\" VARCHAR2(20), \n" +
|
||||
"\t\"CBRLXDH\" VARCHAR2(20), \n" +
|
||||
"\t\"TBDW\" VARCHAR2(50), \n" +
|
||||
"\t\"TBR\" VARCHAR2(20), \n" +
|
||||
"\t\"TBRQ\" DATE, \n" +
|
||||
"\t\"JZ_JQLB\" VARCHAR2(20), \n" +
|
||||
"\t\"SFZR\" VARCHAR2(10), \n" +
|
||||
"\t\"SJDWDM\" VARCHAR2(40), \n" +
|
||||
"\t CONSTRAINT \"PK_CASE_GG_JQXX1\" PRIMARY KEY (\"ID\")\n" +
|
||||
" USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS \n" +
|
||||
" STORAGE(INITIAL 150994944 NEXT 8388608 MINEXTENTS 1 MAXEXTENTS 2147483645\n" +
|
||||
" PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1\n" +
|
||||
" BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)\n" +
|
||||
" TABLESPACE \"RDP_IDX\" ENABLE\n" +
|
||||
" ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 \n" +
|
||||
" STORAGE(\n" +
|
||||
" BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)\n" +
|
||||
" TABLESPACE \"RDP_DATA\" \n" +
|
||||
" PARTITION BY RANGE (\"LRSJ\") \n" +
|
||||
" (PARTITION \"T_RANGE_V1\" VALUES LESS THAN (TO_DATE(' 2015-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) SEGMENT CREATION IMMEDIATE \n" +
|
||||
" PCTFREE 80 PCTUSED 40 INITRANS 1 MAXTRANS 255 \n" +
|
||||
" COMPRESS FOR OLTP LOGGING \n" +
|
||||
" STORAGE(INITIAL 553648128 NEXT 16384 MINEXTENTS 1 MAXEXTENTS 2147483645\n" +
|
||||
" PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1\n" +
|
||||
" BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)\n" +
|
||||
" TABLESPACE \"RDP_DATA\" , \n" +
|
||||
" PARTITION \"T_RANGE_V2\" VALUES LESS THAN (TO_DATE(' 2015-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) SEGMENT CREATION IMMEDIATE \n" +
|
||||
" PCTFREE 80 PCTUSED 40 INITRANS 1 MAXTRANS 255 \n" +
|
||||
" COMPRESS FOR OLTP LOGGING \n" +
|
||||
" STORAGE(INITIAL 553648128 NEXT 16384 MINEXTENTS 1 MAXEXTENTS 2147483645\n" +
|
||||
" PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1\n" +
|
||||
" BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)\n" +
|
||||
" TABLESPACE \"RDP_DATA\" , \n" +
|
||||
" PARTITION \"T_RANGE_V3\" VALUES LESS THAN (TO_DATE(' 2016-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) SEGMENT CREATION IMMEDIATE \n" +
|
||||
" PCTFREE 80 PCTUSED 40 INITRANS 1 MAXTRANS 255 \n" +
|
||||
" COMPRESS FOR OLTP LOGGING \n" +
|
||||
" STORAGE(INITIAL 553648128 NEXT 16384 MINEXTENTS 1 MAXEXTENTS 2147483645\n" +
|
||||
" PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1\n" +
|
||||
" BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)\n" +
|
||||
" TABLESPACE \"RDP_DATA\" , \n" +
|
||||
" PARTITION \"T_RANGE_V4\" VALUES LESS THAN (TO_DATE(' 2016-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) SEGMENT CREATION IMMEDIATE \n" +
|
||||
" PCTFREE 80 PCTUSED 40 INITRANS 1 MAXTRANS 255 \n" +
|
||||
" COMPRESS FOR OLTP LOGGING \n" +
|
||||
" STORAGE(INITIAL 553648128 NEXT 16384 MINEXTENTS 1 MAXEXTENTS 2147483645\n" +
|
||||
" PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1\n" +
|
||||
" BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)\n" +
|
||||
" TABLESPACE \"RDP_DATA\" , \n" +
|
||||
" PARTITION \"T_RANGE_V5\" VALUES LESS THAN (TO_DATE(' 2017-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) SEGMENT CREATION IMMEDIATE \n" +
|
||||
" PCTFREE 80 PCTUSED 40 INITRANS 1 MAXTRANS 255 \n" +
|
||||
" COMPRESS FOR OLTP LOGGING \n" +
|
||||
" STORAGE(INITIAL 553648128 NEXT 16384 MINEXTENTS 1 MAXEXTENTS 2147483645\n" +
|
||||
" PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1\n" +
|
||||
" BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)\n" +
|
||||
" TABLESPACE \"RDP_DATA\" , \n" +
|
||||
" PARTITION \"T_RANGE_V6\" VALUES LESS THAN (TO_DATE(' 2017-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) SEGMENT CREATION IMMEDIATE \n" +
|
||||
" PCTFREE 80 PCTUSED 40 INITRANS 1 MAXTRANS 255 \n" +
|
||||
" COMPRESS FOR OLTP LOGGING \n" +
|
||||
" STORAGE(INITIAL 553648128 NEXT 16384 MINEXTENTS 1 MAXEXTENTS 2147483645\n" +
|
||||
" PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1\n" +
|
||||
" BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)\n" +
|
||||
" TABLESPACE \"RDP_DATA\" , \n" +
|
||||
" PARTITION \"MAXPART\" VALUES LESS THAN (MAXVALUE) SEGMENT CREATION IMMEDIATE \n" +
|
||||
" PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 \n" +
|
||||
" COMPRESS FOR OLTP LOGGING \n" +
|
||||
" STORAGE(INITIAL 8388608 NEXT 8388608 MINEXTENTS 1 MAXEXTENTS 2147483645\n" +
|
||||
" PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1\n" +
|
||||
" BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)\n" +
|
||||
" TABLESPACE \"RDP_DATA\" ) ";
|
||||
|
||||
OracleStatementParser parser = new OracleStatementParser(sql);
|
||||
List<SQLStatement> statementList = parser.parseStatementList();
|
||||
SQLStatement stmt = statementList.get(0);
|
||||
print(statementList);
|
||||
|
||||
Assert.assertEquals(1, statementList.size());
|
||||
|
||||
Assert.assertEquals("CREATE TABLE \"SC_001\".\"TB_001\" (\n" +
|
||||
"\t\"ID\" VARCHAR2(32) DEFAULT Sys_guid() NOT NULL ENABLE,\n" +
|
||||
"\t\"ISDEL\" NUMBER(1, 0) DEFAULT 0,\n" +
|
||||
"\t\"DATAVERSION\" CHAR(14) DEFAULT to_char(SYSDATE, 'yyyymmddhh24miss'),\n" +
|
||||
"\t\"LRR_SFZH\" VARCHAR2(50),\n" +
|
||||
"\t\"LRSJ\" DATE DEFAULT SYSDATE,\n" +
|
||||
"\t\"JQZT\" VARCHAR2(10),\n" +
|
||||
"\t\"JQDD\" VARCHAR2(200),\n" +
|
||||
"\t\"BJFS\" VARCHAR2(10),\n" +
|
||||
"\t\"BJSJ\" DATE,\n" +
|
||||
"\t\"BJR\" VARCHAR2(150),\n" +
|
||||
"\t\"BJDH\" VARCHAR2(50),\n" +
|
||||
"\t\"BJNR\" VARCHAR2(4000),\n" +
|
||||
"\t\"PDDDSJ\" DATE,\n" +
|
||||
"\t\"PDJSSJ\" DATE,\n" +
|
||||
"\t\"CJMJ\" VARCHAR2(50),\n" +
|
||||
"\t\"CJDW\" VARCHAR2(50),\n" +
|
||||
"\t\"CJSJ\" DATE,\n" +
|
||||
"\t\"DDXCSJ\" DATE,\n" +
|
||||
"\t\"CJCS\" VARCHAR2(2000),\n" +
|
||||
"\t\"CJJG\" VARCHAR2(2000),\n" +
|
||||
"\t\"GZYQ\" VARCHAR2(2000),\n" +
|
||||
"\t\"JQBH\" VARCHAR2(30),\n" +
|
||||
"\t\"XGR_SFZH\" VARCHAR2(50),\n" +
|
||||
"\t\"XGSJ\" DATE DEFAULT SYSDATE,\n" +
|
||||
"\t\"AJLY\" VARCHAR2(10) DEFAULT '03',\n" +
|
||||
"\t\"JQMC\" VARCHAR2(200),\n" +
|
||||
"\t\"CJJGSM\" VARCHAR2(2000),\n" +
|
||||
"\t\"CJMJ_XM\" VARCHAR2(200),\n" +
|
||||
"\t\"CJDW_MC\" VARCHAR2(200),\n" +
|
||||
"\t\"JQLB\" VARCHAR2(20),\n" +
|
||||
"\t\"XXLX\" VARCHAR2(20),\n" +
|
||||
"\t\"JJDBH\" VARCHAR2(50),\n" +
|
||||
"\t\"XZQH\" VARCHAR2(50),\n" +
|
||||
"\t\"CBQY_BH\" VARCHAR2(50),\n" +
|
||||
"\t\"SJLY\" VARCHAR2(200) DEFAULT '????',\n" +
|
||||
"\t\"GXDWDM\" VARCHAR2(20),\n" +
|
||||
"\t\"BJLXDM\" VARCHAR2(20),\n" +
|
||||
"\t\"BJXLDM\" VARCHAR2(20),\n" +
|
||||
"\t\"CJDW_OLD\" VARCHAR2(50),\n" +
|
||||
"\t\"JQLY\" VARCHAR2(20),\n" +
|
||||
"\t\"IS_AJ_ANALYZE\" VARCHAR2(1) DEFAULT '9',\n" +
|
||||
"\t\"SJJE\" VARCHAR2(20),\n" +
|
||||
"\t\"YSDWFL\" VARCHAR2(5),\n" +
|
||||
"\t\"YSDWMC\" VARCHAR2(50),\n" +
|
||||
"\t\"YSDWCBR\" VARCHAR2(20),\n" +
|
||||
"\t\"CBRLXDH\" VARCHAR2(20),\n" +
|
||||
"\t\"TBDW\" VARCHAR2(50),\n" +
|
||||
"\t\"TBR\" VARCHAR2(20),\n" +
|
||||
"\t\"TBRQ\" DATE,\n" +
|
||||
"\t\"JZ_JQLB\" VARCHAR2(20),\n" +
|
||||
"\t\"SFZR\" VARCHAR2(10),\n" +
|
||||
"\t\"SJDWDM\" VARCHAR2(40),\n" +
|
||||
"\tCONSTRAINT \"PK_CASE_GG_JQXX1\" PRIMARY KEY (\"ID\")\n" +
|
||||
"\t\tUSING INDEX\n" +
|
||||
"\t\tPCTFREE 10\n" +
|
||||
"\t\tINITRANS 2\n" +
|
||||
"\t\tMAXTRANS 255\n" +
|
||||
"\t\tTABLESPACE \"RDP_IDX\"\n" +
|
||||
"\t\tSTORAGE (\n" +
|
||||
"\t\t\tINITIAL 150994944\n" +
|
||||
"\t\t\tFREELISTS 1\n" +
|
||||
"\t\t\tFREELIST GROUPS 1\n" +
|
||||
"\t\t\tBUFFER_POOL DEFAULT\n" +
|
||||
"\t\t\tFLASH_CACHE DEFAULT\n" +
|
||||
"\t\t\tCELL_FLASH_CACHE DEFAULT\n" +
|
||||
"\t\t)\n" +
|
||||
"\t\tCOMPUTE STATISTICS\n" +
|
||||
"\t\tENABLE\n" +
|
||||
")\n" +
|
||||
"PCTFREE 10\n" +
|
||||
"PCTUSED 40\n" +
|
||||
"INITRANS 1\n" +
|
||||
"MAXTRANS 255\n" +
|
||||
"TABLESPACE \"RDP_DATA\"\n" +
|
||||
"STORAGE (\n" +
|
||||
"\tBUFFER_POOL DEFAULT\n" +
|
||||
"\tFLASH_CACHE DEFAULT\n" +
|
||||
"\tCELL_FLASH_CACHE DEFAULT\n" +
|
||||
")\n" +
|
||||
"PARTITION BY RANGE (\"LRSJ\")\n" +
|
||||
"(\n" +
|
||||
"\tPARTITION \"T_RANGE_V1\" VALUES LESS THAN (TO_DATE(' 2015-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))\n" +
|
||||
"\t\tPCTFREE 80\n" +
|
||||
"\t\tPCTUSED 40\n" +
|
||||
"\t\tINITRANS 1\n" +
|
||||
"\t\tMAXTRANS 255\n" +
|
||||
"\t\tCOMPRESS\n" +
|
||||
"\t\tLOGGING\n" +
|
||||
"\t\tTABLESPACE \"RDP_DATA\"\n" +
|
||||
"\t\tSTORAGE (\n" +
|
||||
"\t\t\tINITIAL 553648128\n" +
|
||||
"\t\t\tFREELISTS 1\n" +
|
||||
"\t\t\tFREELIST GROUPS 1\n" +
|
||||
"\t\t\tBUFFER_POOL DEFAULT\n" +
|
||||
"\t\t\tFLASH_CACHE DEFAULT\n" +
|
||||
"\t\t\tCELL_FLASH_CACHE DEFAULT\n" +
|
||||
"\t\t),\n" +
|
||||
"\tPARTITION \"T_RANGE_V2\" VALUES LESS THAN (TO_DATE(' 2015-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))\n" +
|
||||
"\t\tPCTFREE 80\n" +
|
||||
"\t\tPCTUSED 40\n" +
|
||||
"\t\tINITRANS 1\n" +
|
||||
"\t\tMAXTRANS 255\n" +
|
||||
"\t\tCOMPRESS\n" +
|
||||
"\t\tLOGGING\n" +
|
||||
"\t\tTABLESPACE \"RDP_DATA\"\n" +
|
||||
"\t\tSTORAGE (\n" +
|
||||
"\t\t\tINITIAL 553648128\n" +
|
||||
"\t\t\tFREELISTS 1\n" +
|
||||
"\t\t\tFREELIST GROUPS 1\n" +
|
||||
"\t\t\tBUFFER_POOL DEFAULT\n" +
|
||||
"\t\t\tFLASH_CACHE DEFAULT\n" +
|
||||
"\t\t\tCELL_FLASH_CACHE DEFAULT\n" +
|
||||
"\t\t),\n" +
|
||||
"\tPARTITION \"T_RANGE_V3\" VALUES LESS THAN (TO_DATE(' 2016-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))\n" +
|
||||
"\t\tPCTFREE 80\n" +
|
||||
"\t\tPCTUSED 40\n" +
|
||||
"\t\tINITRANS 1\n" +
|
||||
"\t\tMAXTRANS 255\n" +
|
||||
"\t\tCOMPRESS\n" +
|
||||
"\t\tLOGGING\n" +
|
||||
"\t\tTABLESPACE \"RDP_DATA\"\n" +
|
||||
"\t\tSTORAGE (\n" +
|
||||
"\t\t\tINITIAL 553648128\n" +
|
||||
"\t\t\tFREELISTS 1\n" +
|
||||
"\t\t\tFREELIST GROUPS 1\n" +
|
||||
"\t\t\tBUFFER_POOL DEFAULT\n" +
|
||||
"\t\t\tFLASH_CACHE DEFAULT\n" +
|
||||
"\t\t\tCELL_FLASH_CACHE DEFAULT\n" +
|
||||
"\t\t),\n" +
|
||||
"\tPARTITION \"T_RANGE_V4\" VALUES LESS THAN (TO_DATE(' 2016-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))\n" +
|
||||
"\t\tPCTFREE 80\n" +
|
||||
"\t\tPCTUSED 40\n" +
|
||||
"\t\tINITRANS 1\n" +
|
||||
"\t\tMAXTRANS 255\n" +
|
||||
"\t\tCOMPRESS\n" +
|
||||
"\t\tLOGGING\n" +
|
||||
"\t\tTABLESPACE \"RDP_DATA\"\n" +
|
||||
"\t\tSTORAGE (\n" +
|
||||
"\t\t\tINITIAL 553648128\n" +
|
||||
"\t\t\tFREELISTS 1\n" +
|
||||
"\t\t\tFREELIST GROUPS 1\n" +
|
||||
"\t\t\tBUFFER_POOL DEFAULT\n" +
|
||||
"\t\t\tFLASH_CACHE DEFAULT\n" +
|
||||
"\t\t\tCELL_FLASH_CACHE DEFAULT\n" +
|
||||
"\t\t),\n" +
|
||||
"\tPARTITION \"T_RANGE_V5\" VALUES LESS THAN (TO_DATE(' 2017-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))\n" +
|
||||
"\t\tPCTFREE 80\n" +
|
||||
"\t\tPCTUSED 40\n" +
|
||||
"\t\tINITRANS 1\n" +
|
||||
"\t\tMAXTRANS 255\n" +
|
||||
"\t\tCOMPRESS\n" +
|
||||
"\t\tLOGGING\n" +
|
||||
"\t\tTABLESPACE \"RDP_DATA\"\n" +
|
||||
"\t\tSTORAGE (\n" +
|
||||
"\t\t\tINITIAL 553648128\n" +
|
||||
"\t\t\tFREELISTS 1\n" +
|
||||
"\t\t\tFREELIST GROUPS 1\n" +
|
||||
"\t\t\tBUFFER_POOL DEFAULT\n" +
|
||||
"\t\t\tFLASH_CACHE DEFAULT\n" +
|
||||
"\t\t\tCELL_FLASH_CACHE DEFAULT\n" +
|
||||
"\t\t),\n" +
|
||||
"\tPARTITION \"T_RANGE_V6\" VALUES LESS THAN (TO_DATE(' 2017-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))\n" +
|
||||
"\t\tPCTFREE 80\n" +
|
||||
"\t\tPCTUSED 40\n" +
|
||||
"\t\tINITRANS 1\n" +
|
||||
"\t\tMAXTRANS 255\n" +
|
||||
"\t\tCOMPRESS\n" +
|
||||
"\t\tLOGGING\n" +
|
||||
"\t\tTABLESPACE \"RDP_DATA\"\n" +
|
||||
"\t\tSTORAGE (\n" +
|
||||
"\t\t\tINITIAL 553648128\n" +
|
||||
"\t\t\tFREELISTS 1\n" +
|
||||
"\t\t\tFREELIST GROUPS 1\n" +
|
||||
"\t\t\tBUFFER_POOL DEFAULT\n" +
|
||||
"\t\t\tFLASH_CACHE DEFAULT\n" +
|
||||
"\t\t\tCELL_FLASH_CACHE DEFAULT\n" +
|
||||
"\t\t),\n" +
|
||||
"\tPARTITION \"MAXPART\" VALUES LESS THAN (MAXVALUE)\n" +
|
||||
"\t\tPCTFREE 10\n" +
|
||||
"\t\tPCTUSED 40\n" +
|
||||
"\t\tINITRANS 1\n" +
|
||||
"\t\tMAXTRANS 255\n" +
|
||||
"\t\tCOMPRESS\n" +
|
||||
"\t\tLOGGING\n" +
|
||||
"\t\tTABLESPACE \"RDP_DATA\"\n" +
|
||||
"\t\tSTORAGE (\n" +
|
||||
"\t\t\tINITIAL 8388608\n" +
|
||||
"\t\t\tFREELISTS 1\n" +
|
||||
"\t\t\tFREELIST GROUPS 1\n" +
|
||||
"\t\t\tBUFFER_POOL DEFAULT\n" +
|
||||
"\t\t\tFLASH_CACHE DEFAULT\n" +
|
||||
"\t\t\tCELL_FLASH_CACHE DEFAULT\n" +
|
||||
"\t\t)\n" +
|
||||
")",//
|
||||
SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE));
|
||||
|
||||
OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor();
|
||||
stmt.accept(visitor);
|
||||
|
||||
System.out.println("Tables : " + visitor.getTables());
|
||||
System.out.println("fields : " + visitor.getColumns());
|
||||
System.out.println("coditions : " + visitor.getConditions());
|
||||
System.out.println("relationships : " + visitor.getRelationships());
|
||||
System.out.println("orderBy : " + visitor.getOrderByColumns());
|
||||
|
||||
Assert.assertEquals(1, visitor.getTables().size());
|
||||
|
||||
Assert.assertEquals(52, visitor.getColumns().size());
|
||||
|
||||
Assert.assertTrue(visitor.getColumns().contains(new TableStat.Column("SC_001.TB_001", "ID")));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,103 @@
|
||||
/*
|
||||
* Copyright 1999-2017 Alibaba Group Holding Ltd.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.alibaba.druid.bvt.sql.oracle.create;
|
||||
|
||||
import com.alibaba.druid.sql.OracleTest;
|
||||
import com.alibaba.druid.sql.SQLUtils;
|
||||
import com.alibaba.druid.sql.ast.SQLStatement;
|
||||
import com.alibaba.druid.sql.dialect.oracle.parser.OracleStatementParser;
|
||||
import com.alibaba.druid.sql.dialect.oracle.visitor.OracleSchemaStatVisitor;
|
||||
import com.alibaba.druid.stat.TableStat;
|
||||
import com.alibaba.druid.util.JdbcConstants;
|
||||
import org.junit.Assert;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class OracleCreateViewTest4 extends OracleTest {
|
||||
|
||||
public void test_types() throws Exception {
|
||||
String sql = //
|
||||
" CREATE OR REPLACE FORCE VIEW \"SC_001\".\"V_001\" (\"OBJ_OWNER\", \"OBJ_NAME\", \"OBJ_TYPE\", \"OBJ_ROWID\", \"DB_USER\", \"SID\", \"LOCK_TYPE\", \"ROW_WAIT_FILE#\", \"ROW_WAIT_BLOCK#\", \"ROW_WAIT_ROW#\") AS \n" +
|
||||
" SELECT owner obj_owner,\n" +
|
||||
" object_name obj_name,\n" +
|
||||
" object_type obj_type,\n" +
|
||||
" dbms_rowid.rowid_create(1, row_wait_obj#, ROW_WAIT_FILE#,\n" +
|
||||
" ROW_WAIT_BLOCK#,ROW_WAIT_ROW#) obj_rowid,\n" +
|
||||
" a.username db_user, a.SID SID, a.TYPE lock_type,\n" +
|
||||
" a.row_wait_file#, a.row_wait_block#, a.row_wait_row#\n" +
|
||||
" FROM TB_001,\n" +
|
||||
" (SELECT /*+ no_merge(a) no_merge(b) */\n" +
|
||||
" a.username, a.SID, a.row_wait_obj#, a.ROW_WAIT_FILE#,\n" +
|
||||
" a.ROW_WAIT_BLOCK#, a.ROW_WAIT_ROW#, b.TYPE\n" +
|
||||
" FROM sys.V_$SESSION a, sys.V_$LOCK b\n" +
|
||||
" WHERE a.username IS NOT NULL\n" +
|
||||
" AND a.row_wait_obj# <> -1\n" +
|
||||
" AND a.SID = b.SID\n" +
|
||||
" AND b.TYPE IN ('TX','TM')\n" +
|
||||
" ) a\n" +
|
||||
" WHERE object_id = a.row_wait_obj# ";
|
||||
|
||||
OracleStatementParser parser = new OracleStatementParser(sql);
|
||||
List<SQLStatement> statementList = parser.parseStatementList();
|
||||
SQLStatement stmt = statementList.get(0);
|
||||
print(statementList);
|
||||
|
||||
Assert.assertEquals(1, statementList.size());
|
||||
|
||||
Assert.assertEquals("CREATE OR REPLACE VIEW \"SC_001\".\"V_001\"\n" +
|
||||
"(\n" +
|
||||
"\t\"OBJ_OWNER\", \n" +
|
||||
"\t\"OBJ_NAME\", \n" +
|
||||
"\t\"OBJ_TYPE\", \n" +
|
||||
"\t\"OBJ_ROWID\", \n" +
|
||||
"\t\"DB_USER\", \n" +
|
||||
"\t\"SID\", \n" +
|
||||
"\t\"LOCK_TYPE\", \n" +
|
||||
"\t\"ROW_WAIT_FILE#\", \n" +
|
||||
"\t\"ROW_WAIT_BLOCK#\", \n" +
|
||||
"\t\"ROW_WAIT_ROW#\"\n" +
|
||||
")\n" +
|
||||
"AS\n" +
|
||||
"SELECT owner AS obj_owner, object_name AS obj_name, object_type AS obj_type, dbms_rowid.rowid_create(1, row_wait_obj#, ROW_WAIT_FILE#, ROW_WAIT_BLOCK#, ROW_WAIT_ROW#) AS obj_rowid, a.username AS db_user\n" +
|
||||
"\t, a.SID AS SID, a.TYPE AS lock_type, a.row_wait_file#, a.row_wait_block#, a.row_wait_row#\n" +
|
||||
"FROM TB_001, (\n" +
|
||||
"\tSELECT /*+ no_merge(a) no_merge(b) */ a.username, a.SID, a.row_wait_obj#, a.ROW_WAIT_FILE#, a.ROW_WAIT_BLOCK#\n" +
|
||||
"\t\t, a.ROW_WAIT_ROW#, b.TYPE\n" +
|
||||
"\tFROM sys.V_$SESSION a, sys.V_$LOCK b\n" +
|
||||
"\tWHERE a.username IS NOT NULL\n" +
|
||||
"\t\tAND a.row_wait_obj# <> -1\n" +
|
||||
"\t\tAND a.SID = b.SID\n" +
|
||||
"\t\tAND b.TYPE IN ('TX', 'TM')\n" +
|
||||
") a\n" +
|
||||
"WHERE object_id = a.row_wait_obj#",//
|
||||
SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE));
|
||||
|
||||
OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor();
|
||||
stmt.accept(visitor);
|
||||
|
||||
System.out.println("Tables : " + visitor.getTables());
|
||||
System.out.println("fields : " + visitor.getColumns());
|
||||
System.out.println("coditions : " + visitor.getConditions());
|
||||
System.out.println("relationships : " + visitor.getRelationships());
|
||||
System.out.println("orderBy : " + visitor.getOrderByColumns());
|
||||
|
||||
Assert.assertEquals(3, visitor.getTables().size());
|
||||
|
||||
Assert.assertEquals(9, visitor.getColumns().size());
|
||||
|
||||
Assert.assertTrue(visitor.getColumns().contains(new TableStat.Column("sys.V_$SESSION", "SID")));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
/*
|
||||
* Copyright 1999-2017 Alibaba Group Holding Ltd.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.alibaba.druid.bvt.sql.oracle.create;
|
||||
|
||||
import com.alibaba.druid.sql.OracleTest;
|
||||
import com.alibaba.druid.sql.SQLUtils;
|
||||
import com.alibaba.druid.sql.ast.SQLStatement;
|
||||
import com.alibaba.druid.sql.dialect.oracle.parser.OracleStatementParser;
|
||||
import com.alibaba.druid.sql.dialect.oracle.visitor.OracleSchemaStatVisitor;
|
||||
import com.alibaba.druid.stat.TableStat;
|
||||
import com.alibaba.druid.util.JdbcConstants;
|
||||
import org.junit.Assert;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class OracleCreateViewTest5 extends OracleTest {
|
||||
|
||||
public void test_types() throws Exception {
|
||||
String sql = //
|
||||
" CREATE OR REPLACE FORCE VIEW \"SC_001\".\"TB_001\" (\"OBJECT_NAME\", \"SESSION_ID\", \"ORACLE_USERNAME\", \"OS_USER_NAME\", \"SQL_ACTIONS\", \"LOCK_MODE\") AS \n" +
|
||||
" SELECT /*+ no_merge(lo) */\n" +
|
||||
" DO.object_name, lo.SESSION_ID, lo.oracle_username, lo.OS_USER_NAME,\n" +
|
||||
" DECODE(locked_mode,\n" +
|
||||
" 1, 'SELECT',\n" +
|
||||
" 2, 'SELECT FOR UPDATE / LOCK ROW SHARE',\n" +
|
||||
" 3, 'INSERT/UPDATE/DELETE/LOCK ROW EXCLUSIVE',\n" +
|
||||
" 4, 'CREATE INDEX/LOCK SHARE',\n" +
|
||||
" 5, 'LOCK SHARE ROW EXCLUSIVE',\n" +
|
||||
" 6, 'ALTER TABLE/DROP TABLE/DROP INDEX/TRUNCATE TABLE/LOCK EXCLUSIVE') sql_actions,\n" +
|
||||
" DECODE(locked_mode, 1, 'NULL', 2, 'SS - SUB SHARE', 3, 'SX - SUB EXCLUSIVE',\n" +
|
||||
" 4, 'S - SHARE', 5, 'SSX - SHARE/SUB EXCLUSIVE', 6, 'X - EXCLUSIVE') Lock_mode\n" +
|
||||
" FROM sys.V_$LOCKED_OBJECT lo, TB_002 DO\n" +
|
||||
" WHERE DO.object_id = lo.object_id ";
|
||||
|
||||
OracleStatementParser parser = new OracleStatementParser(sql);
|
||||
List<SQLStatement> statementList = parser.parseStatementList();
|
||||
SQLStatement stmt = statementList.get(0);
|
||||
print(statementList);
|
||||
|
||||
Assert.assertEquals(1, statementList.size());
|
||||
|
||||
Assert.assertEquals("CREATE OR REPLACE VIEW \"SC_001\".\"TB_001\"\n" +
|
||||
"(\n" +
|
||||
"\t\"OBJECT_NAME\", \n" +
|
||||
"\t\"SESSION_ID\", \n" +
|
||||
"\t\"ORACLE_USERNAME\", \n" +
|
||||
"\t\"OS_USER_NAME\", \n" +
|
||||
"\t\"SQL_ACTIONS\", \n" +
|
||||
"\t\"LOCK_MODE\"\n" +
|
||||
")\n" +
|
||||
"AS\n" +
|
||||
"SELECT /*+ no_merge(lo) */ DO.object_name, lo.SESSION_ID, lo.oracle_username, lo.OS_USER_NAME, DECODE(locked_mode, 1, 'SELECT', 2, 'SELECT FOR UPDATE / LOCK ROW SHARE', 3, 'INSERT/UPDATE/DELETE/LOCK ROW EXCLUSIVE', 4, 'CREATE INDEX/LOCK SHARE', 5, 'LOCK SHARE ROW EXCLUSIVE', 6, 'ALTER TABLE/DROP TABLE/DROP INDEX/TRUNCATE TABLE/LOCK EXCLUSIVE') AS sql_actions\n" +
|
||||
"\t, DECODE(locked_mode, 1, 'NULL', 2, 'SS - SUB SHARE', 3, 'SX - SUB EXCLUSIVE', 4, 'S - SHARE', 5, 'SSX - SHARE/SUB EXCLUSIVE', 6, 'X - EXCLUSIVE') AS Lock_mode\n" +
|
||||
"FROM sys.V_$LOCKED_OBJECT lo, TB_002 DO\n" +
|
||||
"WHERE DO.object_id = lo.object_id",//
|
||||
SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE));
|
||||
|
||||
OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor();
|
||||
stmt.accept(visitor);
|
||||
|
||||
System.out.println("Tables : " + visitor.getTables());
|
||||
System.out.println("fields : " + visitor.getColumns());
|
||||
System.out.println("coditions : " + visitor.getConditions());
|
||||
System.out.println("relationships : " + visitor.getRelationships());
|
||||
System.out.println("orderBy : " + visitor.getOrderByColumns());
|
||||
|
||||
Assert.assertEquals(2, visitor.getTables().size());
|
||||
|
||||
Assert.assertEquals(7, visitor.getColumns().size());
|
||||
|
||||
Assert.assertTrue(visitor.getColumns().contains(new TableStat.Column("TB_002", "object_id")));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,148 @@
|
||||
/*
|
||||
* Copyright 1999-2017 Alibaba Group Holding Ltd.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.alibaba.druid.bvt.sql.oracle.create;
|
||||
|
||||
import com.alibaba.druid.sql.OracleTest;
|
||||
import com.alibaba.druid.sql.SQLUtils;
|
||||
import com.alibaba.druid.sql.ast.SQLStatement;
|
||||
import com.alibaba.druid.sql.dialect.oracle.parser.OracleStatementParser;
|
||||
import com.alibaba.druid.sql.dialect.oracle.visitor.OracleSchemaStatVisitor;
|
||||
import com.alibaba.druid.stat.TableStat;
|
||||
import com.alibaba.druid.util.JdbcConstants;
|
||||
import org.junit.Assert;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class OracleCreateViewTest6 extends OracleTest {
|
||||
|
||||
public void test_types() throws Exception {
|
||||
String sql = //
|
||||
" CREATE OR REPLACE FORCE VIEW \"SC_001\".\"TV_001\" (\"ID\", \"GMT_CREATE\", \"CREATOR\", \"GMT_MODIFIED\", \"MODIFIER\", \"IS_DELETED\", \"CONTRACT_PARTY\", \"COMPANY_NAME\", \"PRODUCT_TYPE\", \"PERIOD\", \"JOIN\", \"OVER\", \"CONTRACT_TERM\", \"CONTRACT_CASH\", \"EXEC_CASH\", \"CANCELED_CASH\", \"RECEIVERD_CASH\", \"O_S_CASH\", \"REMARK\", \"FENTAN_CHECK\", \"TOTAL_CASH\", \"NOT_CONFIRMED\", \"PRE_RECEIVED\", \"NOT_RECEIVED\", \"CONTRACT_DATE\", \"OWNER_1\", \"AREA_ID_1\", \"FIRST_OWNER\", \"FIRST_AREA_ID\", \"CONTRACT_ID\", \"IS_RENEW_UPGRADE\", \"CATEGORY_ID_1\", \"CATEGORY_ID_2\", \"FIRST_RECEIPT_DATE\", \"RECEIPT_REMARK\", \"CONTRACT_SERIAL\", \"IS_MERGED\") AS \n" +
|
||||
" SELECT\n" +
|
||||
"ID,\n" +
|
||||
"GMT_CREATE,\n" +
|
||||
"utl_raw.cast_to_raw(CREATOR) AS CREATOR,\n" +
|
||||
"GMT_MODIFIED,\n" +
|
||||
"utl_raw.cast_to_raw(MODIFIER) AS MODIFIER,\n" +
|
||||
"IS_DELETED,\n" +
|
||||
"utl_raw.cast_to_raw(CONTRACT_PARTY) AS CONTRACT_PARTY,\n" +
|
||||
"utl_raw.cast_to_raw(COMPANY_NAME) AS COMPANY_NAME,\n" +
|
||||
"utl_raw.cast_to_raw(PRODUCT_TYPE) AS PRODUCT_TYPE,\n" +
|
||||
"utl_raw.cast_to_raw(PERIOD) AS PERIOD,\n" +
|
||||
"JOIN,\n" +
|
||||
"OVER,\n" +
|
||||
"CONTRACT_TERM,\n" +
|
||||
"CONTRACT_CASH,\n" +
|
||||
"EXEC_CASH,\n" +
|
||||
"CANCELED_CASH,\n" +
|
||||
"RECEIVERD_CASH,\n" +
|
||||
"O_S_CASH,\n" +
|
||||
"utl_raw.cast_to_raw(REMARK) AS REMARK,\n" +
|
||||
"FENTAN_CHECK,\n" +
|
||||
"TOTAL_CASH,\n" +
|
||||
"NOT_CONFIRMED,\n" +
|
||||
"PRE_RECEIVED,\n" +
|
||||
"NOT_RECEIVED,\n" +
|
||||
"CONTRACT_DATE,\n" +
|
||||
"utl_raw.cast_to_raw(OWNER_1) AS OWNER_1,\n" +
|
||||
"AREA_ID_1,\n" +
|
||||
"utl_raw.cast_to_raw(FIRST_OWNER) AS FIRST_OWNER,\n" +
|
||||
"FIRST_AREA_ID,\n" +
|
||||
"utl_raw.cast_to_raw(CONTRACT_ID) AS CONTRACT_ID,\n" +
|
||||
"utl_raw.cast_to_raw(IS_RENEW_UPGRADE) AS IS_RENEW_UPGRADE,\n" +
|
||||
"CATEGORY_ID_1,\n" +
|
||||
"CATEGORY_ID_2,\n" +
|
||||
"FIRST_RECEIPT_DATE,\n" +
|
||||
"utl_raw.cast_to_raw(RECEIPT_REMARK) AS RECEIPT_REMARK,\n" +
|
||||
"utl_raw.cast_to_raw(CONTRACT_SERIAL) AS CONTRACT_SERIAL,\n" +
|
||||
"IS_MERGED\n" +
|
||||
"FROM TB_002 ";
|
||||
|
||||
OracleStatementParser parser = new OracleStatementParser(sql);
|
||||
List<SQLStatement> statementList = parser.parseStatementList();
|
||||
SQLStatement stmt = statementList.get(0);
|
||||
print(statementList);
|
||||
|
||||
Assert.assertEquals(1, statementList.size());
|
||||
|
||||
Assert.assertEquals("CREATE OR REPLACE VIEW \"SC_001\".\"TV_001\"\n" +
|
||||
"(\n" +
|
||||
"\t\"ID\", \n" +
|
||||
"\t\"GMT_CREATE\", \n" +
|
||||
"\t\"CREATOR\", \n" +
|
||||
"\t\"GMT_MODIFIED\", \n" +
|
||||
"\t\"MODIFIER\", \n" +
|
||||
"\t\"IS_DELETED\", \n" +
|
||||
"\t\"CONTRACT_PARTY\", \n" +
|
||||
"\t\"COMPANY_NAME\", \n" +
|
||||
"\t\"PRODUCT_TYPE\", \n" +
|
||||
"\t\"PERIOD\", \n" +
|
||||
"\t\"JOIN\", \n" +
|
||||
"\t\"OVER\", \n" +
|
||||
"\t\"CONTRACT_TERM\", \n" +
|
||||
"\t\"CONTRACT_CASH\", \n" +
|
||||
"\t\"EXEC_CASH\", \n" +
|
||||
"\t\"CANCELED_CASH\", \n" +
|
||||
"\t\"RECEIVERD_CASH\", \n" +
|
||||
"\t\"O_S_CASH\", \n" +
|
||||
"\t\"REMARK\", \n" +
|
||||
"\t\"FENTAN_CHECK\", \n" +
|
||||
"\t\"TOTAL_CASH\", \n" +
|
||||
"\t\"NOT_CONFIRMED\", \n" +
|
||||
"\t\"PRE_RECEIVED\", \n" +
|
||||
"\t\"NOT_RECEIVED\", \n" +
|
||||
"\t\"CONTRACT_DATE\", \n" +
|
||||
"\t\"OWNER_1\", \n" +
|
||||
"\t\"AREA_ID_1\", \n" +
|
||||
"\t\"FIRST_OWNER\", \n" +
|
||||
"\t\"FIRST_AREA_ID\", \n" +
|
||||
"\t\"CONTRACT_ID\", \n" +
|
||||
"\t\"IS_RENEW_UPGRADE\", \n" +
|
||||
"\t\"CATEGORY_ID_1\", \n" +
|
||||
"\t\"CATEGORY_ID_2\", \n" +
|
||||
"\t\"FIRST_RECEIPT_DATE\", \n" +
|
||||
"\t\"RECEIPT_REMARK\", \n" +
|
||||
"\t\"CONTRACT_SERIAL\", \n" +
|
||||
"\t\"IS_MERGED\"\n" +
|
||||
")\n" +
|
||||
"AS\n" +
|
||||
"SELECT ID, GMT_CREATE, utl_raw.cast_to_raw(CREATOR) AS CREATOR, GMT_MODIFIED, utl_raw.cast_to_raw(MODIFIER) AS MODIFIER\n" +
|
||||
"\t, IS_DELETED, utl_raw.cast_to_raw(CONTRACT_PARTY) AS CONTRACT_PARTY, utl_raw.cast_to_raw(COMPANY_NAME) AS COMPANY_NAME, utl_raw.cast_to_raw(PRODUCT_TYPE) AS PRODUCT_TYPE, utl_raw.cast_to_raw(PERIOD) AS PERIOD\n" +
|
||||
"\t, JOIN, OVER, CONTRACT_TERM, CONTRACT_CASH, EXEC_CASH\n" +
|
||||
"\t, CANCELED_CASH, RECEIVERD_CASH, O_S_CASH, utl_raw.cast_to_raw(REMARK) AS REMARK, FENTAN_CHECK\n" +
|
||||
"\t, TOTAL_CASH, NOT_CONFIRMED, PRE_RECEIVED, NOT_RECEIVED, CONTRACT_DATE\n" +
|
||||
"\t, utl_raw.cast_to_raw(OWNER_1) AS OWNER_1, AREA_ID_1, utl_raw.cast_to_raw(FIRST_OWNER) AS FIRST_OWNER, FIRST_AREA_ID, utl_raw.cast_to_raw(CONTRACT_ID) AS CONTRACT_ID\n" +
|
||||
"\t, utl_raw.cast_to_raw(IS_RENEW_UPGRADE) AS IS_RENEW_UPGRADE, CATEGORY_ID_1, CATEGORY_ID_2, FIRST_RECEIPT_DATE, utl_raw.cast_to_raw(RECEIPT_REMARK) AS RECEIPT_REMARK\n" +
|
||||
"\t, utl_raw.cast_to_raw(CONTRACT_SERIAL) AS CONTRACT_SERIAL, IS_MERGED\n" +
|
||||
"FROM TB_002",//
|
||||
SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE));
|
||||
|
||||
OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor();
|
||||
stmt.accept(visitor);
|
||||
|
||||
System.out.println("Tables : " + visitor.getTables());
|
||||
System.out.println("fields : " + visitor.getColumns());
|
||||
System.out.println("coditions : " + visitor.getConditions());
|
||||
System.out.println("relationships : " + visitor.getRelationships());
|
||||
System.out.println("orderBy : " + visitor.getOrderByColumns());
|
||||
|
||||
Assert.assertEquals(1, visitor.getTables().size());
|
||||
|
||||
Assert.assertEquals(37, visitor.getColumns().size());
|
||||
|
||||
Assert.assertTrue(visitor.getColumns().contains(new TableStat.Column("TB_002", "ID")));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user