diff --git a/debezium-ddl-parser/src/main/antlr4/io/debezium/ddl/parser/oracle/generated/PlSqlLexer.g4 b/debezium-ddl-parser/src/main/antlr4/io/debezium/ddl/parser/oracle/generated/PlSqlLexer.g4 index 0f6a88e66..7371c0bee 100644 --- a/debezium-ddl-parser/src/main/antlr4/io/debezium/ddl/parser/oracle/generated/PlSqlLexer.g4 +++ b/debezium-ddl-parser/src/main/antlr4/io/debezium/ddl/parser/oracle/generated/PlSqlLexer.g4 @@ -94,6 +94,7 @@ ARCHIVAL: 'ARCHIVAL'; ARCHIVE: 'ARCHIVE'; ARCHIVED: 'ARCHIVED'; ARCHIVELOG: 'ARCHIVELOG'; +ARE: 'ARE'; ARRAY: 'ARRAY'; AS: 'AS'; ASC: 'ASC'; @@ -129,6 +130,7 @@ AVRO: 'AVRO'; BACKGROUND: 'BACKGROUND'; BACKUP: 'BACKUP'; BACKUPSET: 'BACKUPSET'; +BADFILE: 'BADFILE'; BASIC: 'BASIC'; BASICFILE: 'BASICFILE'; BATCH: 'BATCH'; @@ -144,7 +146,9 @@ BEQUEATH: 'BEQUEATH'; BETWEEN: 'BETWEEN'; BFILE: 'BFILE'; BFILENAME: 'BFILENAME'; +BIG: 'BIG'; BIGFILE: 'BIGFILE'; +BIGINT: 'BIGINT'; BINARY: 'BINARY'; BINARY_DOUBLE: 'BINARY_DOUBLE'; BINARY_DOUBLE_INFINITY: 'BINARY_DOUBLE_INFINITY'; @@ -162,6 +166,7 @@ BITMAP: 'BITMAP'; BITMAPS: 'BITMAPS'; BITMAP_TREE: 'BITMAP_TREE'; BITS: 'BITS'; +BLANKS: 'BLANKS'; BLOB: 'BLOB'; BLOCK: 'BLOCK'; BLOCK_RANGE: 'BLOCK_RANGE'; @@ -184,6 +189,8 @@ BY: 'BY'; BYPASS_RECURSIVE_CHECK: 'BYPASS_RECURSIVE_CHECK'; BYPASS_UJVC: 'BYPASS_UJVC'; BYTE: 'BYTE'; +BYTES: 'BYTES'; +BYTEORDERMARK: 'BYTEORDERMARK'; CACHE: 'CACHE'; CACHE_CB: 'CACHE_CB'; CACHE_INSTANCES: 'CACHE_INSTANCES'; @@ -210,8 +217,10 @@ CHANGE: 'CHANGE'; CHANGETRACKING: 'CHANGETRACKING'; CHANGE_DUPKEY_ERROR_INDEX: 'CHANGE_DUPKEY_ERROR_INDEX'; CHARACTER: 'CHARACTER'; +CHARACTERS: 'CHARACTERS'; CHAR: 'CHAR'; CHAR_CS: 'CHAR_CS'; +CHARACTERSET: 'CHARACTERSET'; CHARTOROWID: 'CHARTOROWID'; CHECK_ACL_REWRITE: 'CHECK_ACL_REWRITE'; CHECK: 'CHECK'; @@ -246,6 +255,7 @@ CO_AUTH_IND: 'CO_AUTH_IND'; COLLATE: 'COLLATE'; COLD: 'COLD'; COLLECT: 'COLLECT'; +COLLECTION: 'COLLECTION'; COLUMNAR: 'COLUMNAR'; COLUMN_AUTH_INDICATOR: 'COLUMN_AUTH_INDICATOR'; COLUMN: 'COLUMN'; @@ -257,6 +267,7 @@ COMMIT: 'COMMIT'; COMMITTED: 'COMMITTED'; COMMON_DATA: 'COMMON_DATA'; COMPACT: 'COMPACT'; +COMPATIBLE: 'COMPATIBLE'; COMPATIBILITY: 'COMPATIBILITY'; COMPILE: 'COMPILE'; COMPLETE: 'COMPLETE'; @@ -268,6 +279,7 @@ COMPOSITE: 'COMPOSITE'; COMPOSITE_LIMIT: 'COMPOSITE_LIMIT'; COMPOUND: 'COMPOUND'; COMPRESS: 'COMPRESS'; +COMPRESSION: 'COMPRESSION'; COMPUTE: 'COMPUTE'; CONCAT: 'CONCAT'; CON_DBID_TO_ID: 'CON_DBID_TO_ID'; @@ -317,6 +329,7 @@ COSH: 'COSH'; COST: 'COST'; COST_XML_QUERY_REWRITE: 'COST_XML_QUERY_REWRITE'; COUNT: 'COUNT'; +COUNTED: 'COUNTED'; COVAR_POP: 'COVAR_POP'; COVAR_SAMP: 'COVAR_SAMP'; CPU_COSTING: 'CPU_COSTING'; @@ -332,6 +345,7 @@ CRITICAL: 'CRITICAL'; CROSS: 'CROSS'; CROSSEDITION: 'CROSSEDITION'; CSCONVERT: 'CSCONVERT'; +CSV: 'CSV'; CUBE_AJ: 'CUBE_AJ'; CUBE: 'CUBE'; CUBE_GB: 'CUBE_GB'; @@ -363,9 +377,12 @@ DATAOBJ_TO_PARTITION: 'DATAOBJ_TO_PARTITION'; DATAPUMP: 'DATAPUMP'; DATA_SECURITY_REWRITE_LIMIT: 'DATA_SECURITY_REWRITE_LIMIT'; DATE: 'DATE'; +DATE_CACHE: 'DATE_CACHE'; +DATE_FORMAT: 'DATE_FORMAT'; DATE_MODE: 'DATE_MODE'; DAY: 'DAY'; DAYS: 'DAYS'; +DAY_TO_SECOND: 'DAY_TO_SECOND'; DBA: 'DBA'; DBA_RECYCLEBIN: 'DBA_RECYCLEBIN'; DBMS_STATS: 'DBMS_STATS'; @@ -387,6 +404,7 @@ DECREMENT: 'DECREMENT'; DECRYPT: 'DECRYPT'; DEDUPLICATE: 'DEDUPLICATE'; DEFAULT: 'DEFAULT'; +DEFAULTIF: 'DEFAULTIF'; DEFAULTS: 'DEFAULTS'; DEFERRABLE: 'DEFERRABLE'; DEFERRED: 'DEFERRED'; @@ -399,6 +417,7 @@ DELEGATE: 'DELEGATE'; DELETE_ALL: 'DELETE_ALL'; DELETE: 'DELETE'; DELETEXML: 'DELETEXML'; +DELIMITED: 'DELIMITED'; DEMAND: 'DEMAND'; DENSE_RANKM: 'DENSE_RANKM'; DEPENDENT: 'DEPENDENT'; @@ -409,22 +428,27 @@ DEREF_NO_REWRITE: 'DEREF_NO_REWRITE'; DESC: 'DESC'; DESTROY: 'DESTROY'; DETACHED: 'DETACHED'; +DETECTED: 'DETECTED'; DETERMINES: 'DETERMINES'; DETERMINISTIC: 'DETERMINISTIC'; DICTIONARY: 'DICTIONARY'; DIMENSION: 'DIMENSION'; DIMENSIONS: 'DIMENSIONS'; +DIRECTIO: 'DIRECTIO'; DIRECT_LOAD: 'DIRECT_LOAD'; DIRECTORY: 'DIRECTORY'; DIRECT_PATH: 'DIRECT_PATH'; DISABLE_ALL: 'DISABLE_ALL'; DISABLE: 'DISABLE'; +DISABLED: 'DISABLED'; +DISABLE_DIRECTORY_LINK_CHECK: 'DISABLE_DIRECTORY_LINK_CHECK'; DISABLE_PARALLEL_DML: 'DISABLE_PARALLEL_DML'; DISABLE_PRESET: 'DISABLE_PRESET'; DISABLE_RPKE: 'DISABLE_RPKE'; DISALLOW: 'DISALLOW'; DISASSOCIATE: 'DISASSOCIATE'; DISCARD: 'DISCARD'; +DISCARDFILE: 'DISCARDFILE'; DISCONNECT: 'DISCONNECT'; DISK: 'DISK'; DISKGROUP: 'DISKGROUP'; @@ -437,6 +461,9 @@ DISTRIBUTED: 'DISTRIBUTED'; DISTRIBUTE: 'DISTRIBUTE'; DML: 'DML'; DML_UPDATE: 'DML_UPDATE'; +DNFS_DISABLE: 'DNFS_DISABLE'; +DNFS_ENABLE: 'DNFS_ENABLE'; +DNFS_READBUFFERS: 'DNFS_READBUFFERS'; DOCFIDELITY: 'DOCFIDELITY'; DOCUMENT: 'DOCUMENT'; DOMAIN_INDEX_FILTER: 'DOMAIN_INDEX_FILTER'; @@ -470,18 +497,22 @@ ELIMINATE_OUTER_JOIN: 'ELIMINATE_OUTER_JOIN'; ELSE: 'ELSE'; ELSIF: 'ELSIF'; EM: 'EM'; +EMBEDDED: 'EMBEDDED'; EMPTY_BLOB: 'EMPTY_BLOB'; EMPTY_CLOB: 'EMPTY_CLOB'; EMPTY: 'EMPTY'; +ENABLED: 'ENABLED'; ENABLE_ALL: 'ENABLE_ALL'; ENABLE: 'ENABLE'; ENABLE_PARALLEL_DML: 'ENABLE_PARALLEL_DML'; ENABLE_PRESET: 'ENABLE_PRESET'; ENCODING: 'ENCODING'; +ENCLOSED: 'ENCLOSED'; ENCRYPT: 'ENCRYPT'; ENCRYPTION: 'ENCRYPTION'; END: 'END'; END_OUTLINE_DATA: 'END_OUTLINE_DATA'; +ENDIAN: 'ENDIAN'; ENFORCED: 'ENFORCED'; ENFORCE: 'ENFORCE'; ENQUEUE: 'ENQUEUE'; @@ -495,6 +526,7 @@ ERROR: 'ERROR'; ERROR_ON_OVERLAP_TIME: 'ERROR_ON_OVERLAP_TIME'; ERRORS: 'ERRORS'; ESCAPE: 'ESCAPE'; +ESCAPED: 'ESCAPED'; ESTIMATE: 'ESTIMATE'; EVAL: 'EVAL'; EVALNAME: 'EVALNAME'; @@ -511,6 +543,7 @@ EXCLUDE: 'EXCLUDE'; EXCLUDING: 'EXCLUDING'; EXCLUSIVE: 'EXCLUSIVE'; EXECUTE: 'EXECUTE'; +EXECDIR: 'EXECDIR'; EXEMPT: 'EXEMPT'; EXISTING: 'EXISTING'; EXISTS: 'EXISTS'; @@ -555,6 +588,9 @@ FEATURE_ID: 'FEATURE_ID'; FEATURE_SET: 'FEATURE_SET'; FEATURE_VALUE: 'FEATURE_VALUE'; FETCH: 'FETCH'; +FIELD: 'FIELD'; +FIELDS: 'FIELDS'; +FIELDNAME: 'FIELDNAME'; FILE: 'FILE'; FILE_NAME_CONVERT: 'FILE_NAME_CONVERT'; FILESYSTEM_LIKE_LOGGING: 'FILESYSTEM_LIKE_LOGGING'; @@ -566,6 +602,7 @@ FIRST: 'FIRST'; FIRSTM: 'FIRSTM'; FIRST_ROWS: 'FIRST_ROWS'; FIRST_VALUE: 'FIRST_VALUE'; +FIXED: 'FIXED'; FIXED_VIEW_DATA: 'FIXED_VIEW_DATA'; FLAGGER: 'FLAGGER'; FLASHBACK: 'FLASHBACK'; @@ -617,6 +654,7 @@ GROUPS: 'GROUPS'; GUARANTEED: 'GUARANTEED'; GUARANTEE: 'GUARANTEE'; GUARD: 'GUARD'; +HADOOP_TRAILERS: 'HADOOP_TRAILERS'; HASH_AJ: 'HASH_AJ'; HASH: 'HASH'; HASHKEYS: 'HASHKEYS'; @@ -645,6 +683,7 @@ ID: 'ID'; IDLE_TIME: 'IDLE_TIME'; IF: 'IF'; IGNORE: 'IGNORE'; +IGNORE_CHARS_AFTER_EOR: 'IGNORE_CHARS_AFTER_EOR'; IGNORE_OPTIM_EMBEDDED_HINTS: 'IGNORE_OPTIM_EMBEDDED_HINTS'; IGNORE_ROW_ON_DUPKEY_INDEX: 'IGNORE_ROW_ON_DUPKEY_INDEX'; IGNORE_WHERE_CLAUSE: 'IGNORE_WHERE_CLAUSE'; @@ -702,6 +741,7 @@ INMEMORY_PRUNING: 'INMEMORY_PRUNING'; INNER: 'INNER'; INOUT: 'INOUT'; INPLACE: 'INPLACE'; +INPUTFORMAT: 'INPUTFORMAT'; INSERTCHILDXMLAFTER: 'INSERTCHILDXMLAFTER'; INSERTCHILDXMLBEFORE: 'INSERTCHILDXMLBEFORE'; INSERTCHILDXML: 'INSERTCHILDXML'; @@ -731,9 +771,11 @@ INTO: 'INTO'; INVALIDATE: 'INVALIDATE'; INVISIBLE: 'INVISIBLE'; IN_XQUERY: 'IN_XQUERY'; +IO_OPTIONS: 'IO_OPTIONS'; IS: 'IS'; ISOLATION: 'ISOLATION'; ISOLATION_LEVEL: 'ISOLATION_LEVEL'; +ITEMS: 'ITEMS'; ITERATE: 'ITERATE'; ITERATION_NUMBER: 'ITERATION_NUMBER'; JAVA: 'JAVA'; @@ -770,11 +812,13 @@ LAST_DAY: 'LAST_DAY'; LAST: 'LAST'; LAST_VALUE: 'LAST_VALUE'; LATERAL: 'LATERAL'; +LATEST: 'LATEST'; LAX: 'LAX'; LAYER: 'LAYER'; LDAP_REGISTRATION_ENABLED: 'LDAP_REGISTRATION_ENABLED'; LDAP_REGISTRATION: 'LDAP_REGISTRATION'; LDAP_REG_SYNC_INTERVAL: 'LDAP_REG_SYNC_INTERVAL'; +LDRTRIM: 'LDRTRIM'; LEADING: 'LEADING'; LEFT: 'LEFT'; LENGTH2: 'LENGTH2'; @@ -795,13 +839,17 @@ LIKEC: 'LIKEC'; LIKE_EXPAND: 'LIKE_EXPAND'; LIKE: 'LIKE'; LIMIT: 'LIMIT'; +LINES: 'LINES'; LINEAR: 'LINEAR'; LINK: 'LINK'; LIST: 'LIST'; +LITTLE: 'LITTLE'; +LLS: 'LLS'; LN: 'LN'; LNNVL: 'LNNVL'; LOAD: 'LOAD'; LOB: 'LOB'; +LOBFILE: 'LOBFILE'; LOBNVL: 'LOBNVL'; LOBS: 'LOBS'; LOCAL_INDEXES: 'LOCAL_INDEXES'; @@ -829,6 +877,7 @@ LOOP: 'LOOP'; LOWER: 'LOWER'; LOW: 'LOW'; LPAD: 'LPAD'; +LRTRIM: 'LRTRIM'; LTRIM: 'LTRIM'; MAIN: 'MAIN'; MAKE_REF: 'MAKE_REF'; @@ -839,6 +888,8 @@ MANAGER: 'MANAGER'; MANUAL: 'MANUAL'; MAP: 'MAP'; MAPPING: 'MAPPING'; +MARK: 'MARK'; +MASK: 'MASK'; MASTER: 'MASTER'; MATCHED: 'MATCHED'; MATCHES: 'MATCHES'; @@ -886,6 +937,7 @@ MIRRORCOLD: 'MIRRORCOLD'; MIRRORHOT: 'MIRRORHOT'; MIRROR: 'MIRROR'; MLSLABEL: 'MLSLABEL'; +MISSING: 'MISSING'; MODEL_COMPILE_SUBQUERY: 'MODEL_COMPILE_SUBQUERY'; MODEL_DONTVERIFY_UNIQUENESS: 'MODEL_DONTVERIFY_UNIQUENESS'; MODEL_DYNAMIC_SUBQUERY: 'MODEL_DYNAMIC_SUBQUERY'; @@ -940,6 +992,7 @@ NESTED_TABLE_SET_SETID: 'NESTED_TABLE_SET_SETID'; NETWORK: 'NETWORK'; NEVER: 'NEVER'; NEW: 'NEW'; +NEWLINE_: 'NEWLINE'; NEW_TIME: 'NEW_TIME'; NEXT_DAY: 'NEXT_DAY'; NEXT: 'NEXT'; @@ -982,8 +1035,10 @@ NO_BASETABLE_MULTIMV_REWRITE: 'NO_BASETABLE_MULTIMV_REWRITE'; NO_BATCH_TABLE_ACCESS_BY_ROWID: 'NO_BATCH_TABLE_ACCESS_BY_ROWID'; NO_BIND_AWARE: 'NO_BIND_AWARE'; NO_BUFFER: 'NO_BUFFER'; +NOBADFILE: 'NOBADFILE'; NOCACHE: 'NOCACHE'; NO_CARTESIAN: 'NO_CARTESIAN'; +NOCHECK: 'NOCHECK'; NO_CHECK_ACL_REWRITE: 'NO_CHECK_ACL_REWRITE'; NO_CLUSTER_BY_ROWID: 'NO_CLUSTER_BY_ROWID'; NO_CLUSTERING: 'NO_CLUSTERING'; @@ -1003,6 +1058,8 @@ NOCYCLE: 'NOCYCLE'; NO_DATA_SECURITY_REWRITE: 'NO_DATA_SECURITY_REWRITE'; NO_DECORRELATE: 'NO_DECORRELATE'; NODELAY: 'NODELAY'; +NODIRECTIO: 'NODIRECTIO'; +NODISCARDFILE: 'NODISCARDFILE'; NO_DOMAIN_INDEX_FILTER: 'NO_DOMAIN_INDEX_FILTER'; NO_DST_UPGRADE_INSERT_CONV: 'NO_DST_UPGRADE_INSERT_CONV'; NO_ELIM_GROUPBY: 'NO_ELIM_GROUPBY'; @@ -1029,6 +1086,8 @@ NO_INMEMORY_PRUNING: 'NO_INMEMORY_PRUNING'; NOKEEP: 'NOKEEP'; NO_LOAD: 'NO_LOAD'; NOLOCAL: 'NOLOCAL'; +NOLOG: 'NOLOG'; +NOLOGFILE: 'NOLOGFILE'; NOLOGGING: 'NOLOGGING'; NOMAPPING: 'NOMAPPING'; NOMAXVALUE: 'NOMAXVALUE'; @@ -1044,6 +1103,7 @@ NO_NATIVE_FULL_OUTER_JOIN: 'NO_NATIVE_FULL_OUTER_JOIN'; NONBLOCKING: 'NONBLOCKING'; NONEDITIONABLE: 'NONEDITIONABLE'; NONE: 'NONE'; +NONULLIF: 'NONULLIF'; NO_NLJ_BATCHING: 'NO_NLJ_BATCHING'; NO_NLJ_PREFETCH: 'NO_NLJ_PREFETCH'; NO: 'NO'; @@ -1111,6 +1171,7 @@ NOTHING: 'NOTHING'; NOTIFICATION: 'NOTIFICATION'; NOT: 'NOT'; NO_TRANSFORM_DISTINCT_AGG: 'NO_TRANSFORM_DISTINCT_AGG'; +NOTRIM: 'NOTRIM'; NO_UNNEST: 'NO_UNNEST'; NO_USE_CUBE: 'NO_USE_CUBE'; NO_USE_HASH_AGGREGATION: 'NO_USE_HASH_AGGREGATION'; @@ -1178,7 +1239,9 @@ OPTIMIZE: 'OPTIMIZE'; OPTIMIZER_FEATURES_ENABLE: 'OPTIMIZER_FEATURES_ENABLE'; OPTIMIZER_GOAL: 'OPTIMIZER_GOAL'; OPTION: 'OPTION'; +OPTIONALLY: 'OPTIONALLY'; OPT_PARAM: 'OPT_PARAM'; +ORC: 'ORC'; ORA_BRANCH: 'ORA_BRANCH'; ORA_CHECK_ACL: 'ORA_CHECK_ACL'; ORA_CHECK_PRIVILEGE: 'ORA_CHECK_PRIVILEGE'; @@ -1202,6 +1265,8 @@ ORA_ROWSCN_RAW: 'ORA_ROWSCN_RAW'; ORA_ROWVERSION: 'ORA_ROWVERSION'; ORA_TABVERSION: 'ORA_TABVERSION'; ORA_WRITE_TIME: 'ORA_WRITE_TIME'; +ORACLE_DATE: 'ORACLE_DATE'; +ORACLE_NUMBER: 'ORACLE_NUMBER'; ORDERED: 'ORDERED'; ORDERED_PREDICATES: 'ORDERED_PREDICATES'; ORDER: 'ORDER'; @@ -1219,10 +1284,12 @@ OUTLINE_LEAF: 'OUTLINE_LEAF'; OUTLINE: 'OUTLINE'; OUT_OF_LINE: 'OUT_OF_LINE'; OUT: 'OUT'; +OUTPUTFORMAT: 'OUTPUTFORMAT'; OVERFLOW_NOMOVE: 'OVERFLOW_NOMOVE'; OVERFLOW: 'OVERFLOW'; OVERLAPS: 'OVERLAPS'; OVER: 'OVER'; +OVERRIDE: 'OVERRIDE'; OVERRIDING: 'OVERRIDING'; OWNER: 'OWNER'; OWNERSHIP: 'OWNERSHIP'; @@ -1237,6 +1304,7 @@ PARAMETERS: 'PARAMETERS'; PARAM: 'PARAM'; PARENT: 'PARENT'; PARITY: 'PARITY'; +PARQUET: 'PARQUET'; PARTIAL_JOIN: 'PARTIAL_JOIN'; PARTIALLY: 'PARTIALLY'; PARTIAL: 'PARTIAL'; @@ -1309,6 +1377,7 @@ POOL_2K: 'POOL_2K'; POOL_32K: 'POOL_32K'; POOL_4K: 'POOL_4K'; POOL_8K: 'POOL_8K'; +POSITION: 'POSITION'; POSITIVEN: 'POSITIVEN'; POSITIVE: 'POSITIVE'; POST_TRANSACTION: 'POST_TRANSACTION'; @@ -1332,6 +1401,7 @@ PRECOMPUTE_SUBQUERY: 'PRECOMPUTE_SUBQUERY'; PREDICATE_REORDERS: 'PREDICATE_REORDERS'; PRELOAD: 'PRELOAD'; PREPARE: 'PREPARE'; +PREPROCESSOR: 'PREPROCESSOR'; PRESENTNNV: 'PRESENTNNV'; PRESENT: 'PRESENT'; PRESENTV: 'PRESENTV'; @@ -1388,14 +1458,17 @@ RAWTOHEX: 'RAWTOHEX'; RAWTONHEX: 'RAWTONHEX'; RBA: 'RBA'; RBO_OUTLINE: 'RBO_OUTLINE'; +RCFILE: 'RCFILE'; RDBA: 'RDBA'; READ: 'READ'; READS: 'READS'; +READSIZE: 'READSIZE'; REALM: 'REALM'; REAL: 'REAL'; REBALANCE: 'REBALANCE'; REBUILD: 'REBUILD'; RECORD: 'RECORD'; +RECORDS: 'RECORDS'; RECORDS_PER_BLOCK: 'RECORDS_PER_BLOCK'; RECOVERABLE: 'RECOVERABLE'; RECOVER: 'RECOVER'; @@ -1535,6 +1608,9 @@ SEMI_TO_INNER: 'SEMI_TO_INNER'; SEQUENCED: 'SEQUENCED'; SEQUENCE: 'SEQUENCE'; SEQUENTIAL: 'SEQUENTIAL'; +SEQUENCEFILE: 'SEQUENCEFILE'; +SERDE: 'SERDE'; +SERDEPROPERTIES: 'SERDEPROPERTIES'; SERIALIZABLE: 'SERIALIZABLE'; SERIALLY_REUSABLE: 'SERIALLY_REUSABLE'; SERIAL: 'SERIAL'; @@ -1573,8 +1649,9 @@ SINGLETASK: 'SINGLETASK'; SINH: 'SINH'; SIN: 'SIN'; SIZE: 'SIZE'; +SIZES: 'SIZES'; SKIP_EXT_OPTIMIZER: 'SKIP_EXT_OPTIMIZER'; -SKIP_ : 'SKIP'; +SKIP_: 'SKIP'; SKIP_UNQ_UNUSABLE_IDX: 'SKIP_UNQ_UNUSABLE_IDX'; SKIP_UNUSABLE_INDEXES: 'SKIP_UNUSABLE_INDEXES'; SMALLFILE: 'SMALLFILE'; @@ -1607,6 +1684,7 @@ STANDBY: 'STANDBY'; STAR: 'STAR'; STAR_TRANSFORMATION: 'STAR_TRANSFORMATION'; START: 'START'; +STARTOF: 'STARTOF'; STARTUP: 'STARTUP'; STATEMENT_ID: 'STATEMENT_ID'; STATEMENT_QUEUING: 'STATEMENT_QUEUING'; @@ -1639,6 +1717,7 @@ STRING: 'STRING'; STRIPE_COLUMNS: 'STRIPE_COLUMNS'; STRIPE_WIDTH: 'STRIPE_WIDTH'; STRIP: 'STRIP'; +STRUCT: 'STRUCT'; STRUCTURE: 'STRUCTURE'; SUBMULTISET: 'SUBMULTISET'; SUBPARTITION_REL: 'SUBPARTITION_REL'; @@ -1959,11 +2038,14 @@ TEMPFILE: 'TEMPFILE'; TEMPLATE: 'TEMPLATE'; TEMPORARY: 'TEMPORARY'; TEMP_TABLE: 'TEMP_TABLE'; +TERMINATED: 'TERMINATED'; TEST: 'TEST'; TEXT: 'TEXT'; +TEXTFILE: 'TEXTFILE'; THAN: 'THAN'; THEN: 'THEN'; THE: 'THE'; +THESE: 'THESE'; THREAD: 'THREAD'; THROUGH: 'THROUGH'; TIER: 'TIER'; @@ -1982,6 +2064,7 @@ TIMEZONE_MINUTE: 'TIMEZONE_MINUTE'; TIMEZONE_OFFSET: 'TIMEZONE_OFFSET'; TIMEZONE_REGION: 'TIMEZONE_REGION'; TIME_ZONE: 'TIME_ZONE'; +TINYINT: 'TINYINT'; TIV_GB: 'TIV_GB'; TIV_SSF: 'TIV_SSF'; TO_ACLID: 'TO_ACLID'; @@ -2008,6 +2091,7 @@ TRACING: 'TRACING'; TRACKING: 'TRACKING'; TRAILING: 'TRAILING'; TRANSACTION: 'TRANSACTION'; +TRANSFORMS: 'TRANSFORMS'; TRANSFORM_DISTINCT_AGG: 'TRANSFORM_DISTINCT_AGG'; TRANSITIONAL: 'TRANSITIONAL'; TRANSITION: 'TRANSITION'; @@ -2039,6 +2123,7 @@ UNDO: 'UNDO'; UNDROP: 'UNDROP'; UNIFORM: 'UNIFORM'; UNION: 'UNION'; +UNIONTYPE: 'UNIONTYPE'; UNIQUE: 'UNIQUE'; UNISTR: 'UNISTR'; UNLIMITED: 'UNLIMITED'; @@ -2056,6 +2141,7 @@ UNPROTECTED: 'UNPROTECTED'; UNQUIESCE: 'UNQUIESCE'; UNRECOVERABLE: 'UNRECOVERABLE'; UNRESTRICTED: 'UNRESTRICTED'; +UNSIGNED: 'UNSIGNED'; UNSUBSCRIBE: 'UNSUBSCRIBE'; UNTIL: 'UNTIL'; UNUSABLE: 'UNUSABLE'; @@ -2116,6 +2202,9 @@ VARCHAR2: 'VARCHAR2'; VARCHAR: 'VARCHAR'; VARIABLE: 'VARIABLE'; VAR_POP: 'VAR_POP'; +VARCHARC: 'VARCHARC'; +VARRAW: 'VARRAW'; +VARRAWC: 'VARRAWC'; VARRAYS: 'VARRAYS'; VARRAY: 'VARRAY'; VAR_SAMP: 'VAR_SAMP'; @@ -2200,6 +2289,7 @@ XMLTABLE: 'XMLTABLE'; XMLTRANSFORMBLOB: 'XMLTRANSFORMBLOB'; XMLTRANSFORM: 'XMLTRANSFORM'; XMLTYPE: 'XMLTYPE'; +XMLTAG: 'XMLTAG'; XML: 'XML'; XPATHTABLE: 'XPATHTABLE'; XS_SYS_CONTEXT: 'XS_SYS_CONTEXT'; @@ -2207,10 +2297,12 @@ XS: 'XS'; XTRANSPORT: 'XTRANSPORT'; YEARS: 'YEARS'; YEAR: 'YEAR'; +YEAR_TO_MONTH: 'YEAR_TO_MONTH'; YES: 'YES'; YMINTERVAL_UNCONSTRAINED: 'YMINTERVAL_UNCONSTRAINED'; ZONEMAP: 'ZONEMAP'; ZONE: 'ZONE'; +ZONED: 'ZONED'; PREDICTION: 'PREDICTION'; PREDICTION_BOUNDS: 'PREDICTION_BOUNDS'; PREDICTION_COST: 'PREDICTION_COST'; @@ -2265,13 +2357,13 @@ BIT_STRING_LIT: 'B' ('\'' [01]* '\'')+; // Rule #284 - subtoken typecast in // Lowercase 'x' is a usual addition to the standard -HEX_STRING_LIT: 'X' ('\'' [A-F0-9]* '\'')+; +HEX_STRING_LIT: ('X'|'x'|'0X'|'0x') ('\'' [A-F0-9]* '\'')+; DOUBLE_PERIOD: '..'; PERIOD: '.'; //{ Rule #238 // This rule is a bit tricky - it resolves the ambiguity with -// It also incorporates and for the +// It also incorporates and for the // Rule #501 was incorporated directly in the token // See also the rule #617 /* @@ -2310,6 +2402,8 @@ PERCENT: '%'; AMPERSAND: '&'; LEFT_PAREN: '('; RIGHT_PAREN: ')'; +LEFT_CURLY_PAREN: '{'; +RIGHT_CURLY_PAREN: '}'; DOUBLE_ASTERISK: '**'; ASTERISK: '*'; PLUS_SIGN: '+'; @@ -2376,4 +2470,27 @@ fragment QUESTION_MARK : '?'; fragment SIMPLE_LETTER : [A-Z]; fragment FLOAT_FRAGMENT : UNSIGNED_INTEGER* '.'? UNSIGNED_INTEGER+; fragment NEWLINE : '\r'? '\n'; -fragment SPACE : [ \t]; \ No newline at end of file +fragment SPACE : [ \t]; + + +// ORACLE HDFS & HIVE rules + +COM_ORACLE_HDFS_HIVE_BIGDATA_COLMAP : 'com.oracle.bigdata.colMap'; +COM_ORACLE_HDFS_HIVE_BIGDATA_ERROROPT : 'com.oracle.bigdata.errorOpt'; +COM_ORACLE_HDFS_HIVE_BIGDATA_FIELDS : 'com.oracle.bigdata.fields'; +COM_ORACLE_HDFS_HIVE_BIGDATA_FILEFORMAT : 'com.oracle.bigdata.fileFormat'; +COM_ORACLE_HDFS_HIVE_BIGDATA_EXEC : 'com.oracle.bigdata.exec'; +COM_ORACLE_HDFS_HIVE_BIGDATA_QC : 'com.oracle.bigdata.qc'; +COM_ORACLE_HDFS_HIVE_BIGDATA_OVERFLOW : 'com.oracle.bigdata.overflow'; +COM_ORACLE_HDFS_HIVE_BIGDATA_ROWFORMAT : 'com.oracle.bigdata.rowFormat'; +COM_ORACLE_HDFS_HIVE_BIGDATA_TABLENAME : 'com.oracle.bigdata.tableName'; + +ET_COL : '"col"'; +ET_FIELD : '"fields"'; +ET_ACTION : '"action"'; +ET_REJECT : '"reject"'; +ET_SETNULL : '"setnull"'; +ET_REPLACE : '"replace"'; +ET_VALUE : '"value"'; +ET_TRUNCATE : '"truncate"'; +ET_ERROR : '"error"'; \ No newline at end of file diff --git a/debezium-ddl-parser/src/main/antlr4/io/debezium/ddl/parser/oracle/generated/PlSqlParser.g4 b/debezium-ddl-parser/src/main/antlr4/io/debezium/ddl/parser/oracle/generated/PlSqlParser.g4 index bf4e400b3..9a80d7573 100644 --- a/debezium-ddl-parser/src/main/antlr4/io/debezium/ddl/parser/oracle/generated/PlSqlParser.g4 +++ b/debezium-ddl-parser/src/main/antlr4/io/debezium/ddl/parser/oracle/generated/PlSqlParser.g4 @@ -2157,7 +2157,7 @@ segment_attributes_clause ; external_table_clause - : '('? (TYPE access_driver_type)? external_table_data_props? ')'? (REJECT LIMIT (UNSIGNED_INTEGER | UNLIMITED))? + : '('? (TYPE access_driver_type)? external_table_data_props* ')'? (REJECT LIMIT (UNSIGNED_INTEGER | UNLIMITED))? ; access_driver_type @@ -2166,7 +2166,239 @@ access_driver_type external_table_data_props : DEFAULT DIRECTORY quoted_string - | LOCATION + | ACCESS PARAMETERS '(' (et_oracle_loader | et_oracle_datapump | et_oracle_hdfs_hive | USING CLOB subquery) ')' + | LOCATION '(' et_directory_spec? et_location_specifier (',' et_directory_spec? et_location_specifier )* ')' + ; + +et_oracle_loader + : comments_oracle_loader? record_format_info? field_definitions? column_transforms? + ; + +et_oracle_datapump + : ENCRYPTION (ENABLED | DISABLED) + | ( NOLOGFILE | LOGFILE et_directory_spec? et_file_spec ) + | COMPRESSION ( ENABLED (BASIC |LOW | MEDIUM | HIGH)? | DISABLED)? + | HADOOP_TRAILERS (ENABLED | DISABLED) VERSION (COMPATIBLE | LATEST | quoted_string ) + | comments_oracle_datapump + ; + +et_oracle_hdfs_hive + : COM_ORACLE_HDFS_HIVE_BIGDATA_COLMAP ( '=' | ':' ) ( + colmap_entry | ('[' colmap_entry ( ',' colmap_entry)* ']')) et_oracle_hdfs_hive* + | COM_ORACLE_HDFS_HIVE_BIGDATA_ERROROPT ( '=' | ':' ) ( + error_element | ('[' error_element ( ',' error_element)* ']' )) et_oracle_hdfs_hive* + | COM_ORACLE_HDFS_HIVE_BIGDATA_FIELDS ( '=' | ':' ) ( + field_spec et_data_type + ( COMMENT col_comment )? (',' COMMENT col_comment )* ) et_oracle_hdfs_hive* + | COM_ORACLE_HDFS_HIVE_BIGDATA_FILEFORMAT ( '=' | ':' ) ( + SEQUENCEFILE + | TEXTFILE + | RCFILE + | ORC + | PARQUET + | INPUTFORMAT quoted_string OUTPUTFORMAT quoted_string ) et_oracle_hdfs_hive* + | COM_ORACLE_HDFS_HIVE_BIGDATA_EXEC ( '=' | ':' ) ( + et_directory_spec? et_file_spec ) et_oracle_hdfs_hive* + | COM_ORACLE_HDFS_HIVE_BIGDATA_QC ( '=' | ':' ) ( + et_directory_spec? et_file_spec ) et_oracle_hdfs_hive* + | COM_ORACLE_HDFS_HIVE_BIGDATA_OVERFLOW ( '=' | ':' ) ( + overflow_element | ('[' overflow_element ( ',' overflow_element)* ']')) et_oracle_hdfs_hive* + | COM_ORACLE_HDFS_HIVE_BIGDATA_ROWFORMAT ( '=' | ':' ) ( + DELIMITED? + ( FIELDS TERMINATED BY CHARACTER ( ESCAPED BY CHARACTER ) + | COLLECTION ITEMS TERMINATED BY CHARACTER + | MAP KEYS TERMINATED BY CHARACTER + | LINES TERMINATED BY CHARACTER + | NULL_ DEFINED AS CHARACTER + ) + | SERDE quoted_string ( WITH SERDEPROPERTIES ( quoted_string '=' quoted_string ( ',' quoted_string '=' quoted_string)*))? ) et_oracle_hdfs_hive* + | COM_ORACLE_HDFS_HIVE_BIGDATA_TABLENAME ( '=' | ':' ) ( + tableview_name ) et_oracle_hdfs_hive* + ; + +colmap_entry + : LEFT_CURLY_PAREN ET_COL BINDVAR ',' ET_FIELD BINDVAR RIGHT_CURLY_PAREN + ; + +error_element + : LEFT_CURLY_PAREN ET_ACTION ':' ( ET_REJECT | ET_SETNULL | ET_REPLACE) (',' ET_VALUE BINDVAR ) + ( ',' ET_COL ':'? ( BINDVAR | '[' quoted_string ( ',' quoted_string )* ']' ))? RIGHT_CURLY_PAREN + ; + +col_comment + : quoted_string + ; + +overflow_element + : LEFT_CURLY_PAREN ET_ACTION ':' ( ET_TRUNCATE | ET_ERROR ) + ( ',' ET_COL ':'? ( BINDVAR | '[' quoted_string ( ',' quoted_string )* ']' ))? RIGHT_CURLY_PAREN + ; + +et_data_type + : ( et_primitive_type + ARRAY '<' et_data_type '>' + MAP '<' et_primitive_type ',' et_data_type '>' + STRUCT '<' field_spec et_data_type ( COMMENT ) (',' COMMENT )* '>' + UNIONTYPE '<' et_data_type ( ',' et_data_type ) '>' ) + ; + +et_primitive_type + : TINYINT + | SMALLINT + | INT + | BIGINT + | BOOLEAN + | FLOAT + | DOUBLE + | STRING + | BINARY + | TIMESTAMP + | DECIMAL + ; + +et_location_specifier + : quoted_string + ; + +comments_oracle_loader + : RECORDS DELIMITED BY NEWLINE_ + ; + +comments_oracle_datapump + : NOLOG + ; +record_format_info + : ( RECORDS ( FIXED UNSIGNED_INTEGER + | VARIABLE UNSIGNED_INTEGER + | DELIMITED BY ( (DETECTED) NEWLINE_ | quoted_string ) + | XMLTAG '('? quoted_string ( ',' quoted_string )* ')'? ))? + et_record_spec_options* + ; + +et_record_spec_options + : CHARACTERSET quoted_string + | EXTERNAL VARIABLE DATA + | PREPROCESSOR et_directory_spec? et_file_spec + | DATA IS ( LITTLE | BIG ) ENDIAN + | BYTEORDERMARK ( CHECK | NOCHECK ) + | STRING SIZES ARE IN ( BYTES | CHARACTERS ) + | LOAD WHEN et_condition_spec + | et_output_files + | ( READSIZE '='? UNSIGNED_INTEGER | DISABLE_DIRECTORY_LINK_CHECK | DATE_CACHE UNSIGNED_INTEGER | SKIP_ UNSIGNED_INTEGER ) + | IO_OPTIONS ( DIRECTIO | NODIRECTIO ) + | ( DNFS_ENABLE | DNFS_DISABLE ) + | DNFS_READBUFFERS UNSIGNED_INTEGER + ; + +et_directory_spec + : directory_name object_name? ':' + ; + +et_file_spec + : filename + ; + +et_condition_spec + : et_condition | et_condition_spec ( AND | OR ) et_condition_spec + ; + +et_condition + : ( field_spec | ( '(' UNSIGNED_INTEGER BINDVAR ')' )) + relational_operator + ( quoted_string | HEX_STRING_LIT | BLANKS ) + ; + + +et_output_files + : ( NOBADFILE | BADFILE et_directory_spec? et_file_spec ) + | ( NODISCARDFILE | DISCARDFILE et_directory_spec? et_file_spec ) + | ( NOLOGFILE | LOGFILE et_directory_spec? et_file_spec ) + ; + +field_definitions + : FIELDS + ( IGNORE_CHARS_AFTER_EOR )? + ( CSV ( WITH EMBEDDED | WITHOUT EMBEDDED ))? + et_delim_spec? + et_trim_spec? + ( ALL FIELDS OVERRIDE THESE FIELDS )? + ( MISSING FIELD VALUES ARE NULL_)? + ( REJECT ROWS WITH ALL NULL_ FIELDS)? + ( DATE_FORMAT ( DATE | TIMESTAMP ) MASK quoted_string )? + ( NULLIF ( EQUALS_OP | NOT_EQUAL_OP ) ( quoted_string | HEX_STRING_LIT | BLANKS ) | NONULLIF )? + '('? et_field_list? ')'? + ; + +et_field_list + : ( field_spec et_pos_spec? et_datatype_spec? et_init_spec? et_LLS_spec? ) ( ',' et_field_list )* + ; + +et_pos_spec + : POSITION? '(' (( UNSIGNED_INTEGER | '*' | ( '+' | '-' ) (UNSIGNED_INTEGER | '*' | '-' )) ( ':' | '-' ) ( UNSIGNED_INTEGER | UNSIGNED_INTEGER )) ')' + ; + +et_datatype_spec + : ( + UNSIGNED? INTEGER EXTERNAL? UNSIGNED_INTEGER? et_delim_spec? + | ( DECIMAL| ZONED ) ( '(' UNSIGNED_INTEGER ( ',' UNSIGNED_INTEGER )? ')' | EXTERNAL ( '(' UNSIGNED_INTEGER ')' )? et_delim_spec? )? + | ORACLE_DATE + | ORACLE_NUMBER (COUNTED)? + | FLOAT EXTERNAL? UNSIGNED_INTEGER? et_delim_spec? + | DOUBLE + | BINARY_FLOAT EXTERNAL? UNSIGNED_INTEGER? et_delim_spec? + | BINARY_DOUBLE + | RAW UNSIGNED_INTEGER? + | CHAR EXTERNAL? UNSIGNED_INTEGER? et_delim_spec? et_trim_spec? et_date_format_spec? + | ( VARCHAR | VARRAW | VARCHARC | VARRAWC ) ('('( UNSIGNED_INTEGER ',')? UNSIGNED_INTEGER ')') + ) + ; + +et_init_spec + : (( DEFAULTIF | NULLIF ) et_condition_spec )* + ; + +et_LLS_spec + : LLS et_directory_spec + ; + +et_date_format_spec + : (DATE_FORMAT)? + ( DATE + | TIMESTAMP (WITH (LOCAL)? TIME ZONE)? MASK quoted_string + | INTERVAL ( YEAR_TO_MONTH | DAY_TO_SECOND )) + ; + +et_delim_spec + : ( + ENCLOSED BY quoted_string ( AND quoted_string )? + | TERMINATED BY ( quoted_string | WHITESPACE ) + ( OPTIONALLY? ENCLOSED BY quoted_string ( AND quoted_string )? )? + ) + ; + +et_trim_spec + : ( LRTRIM | NOTRIM | LTRIM | RTRIM | LDRTRIM ) + ; + +column_transforms + : COLUMN TRANSFORMS '(' et_transform (',' et_transform)* ')' + ; + +et_transform + : column_name FROM + ( NULL_ + | CONSTANT quoted_string + | CONCAT ( field_spec | CONSTANT quoted_string ) + | LOBFILE (field_spec | CONSTANT quoted_string ) + | et_lobfile_attr + | STARTOF et_field_list '(' UNSIGNED_INTEGER ')' + ) + ; +et_lobfile_attr + : FROM '(' et_directory_spec (',' et_directory_spec)* ')' + | CLOB + | BLOB + | CHARACTERSET '=' char_set_name ; physical_properties @@ -5619,6 +5851,7 @@ non_reserved_keywords_pre12c | EXCLUDE | EXCLUDING | EXECUTE + | EXECDIR | EXEMPT | EXISTSNODE | EXPAND_GSET_TO_UNION diff --git a/debezium-ddl-parser/src/test/resources/oracle/examples/ddl_create.sql b/debezium-ddl-parser/src/test/resources/oracle/examples/ddl_create.sql index 6b17915c4..86e06f630 100644 --- a/debezium-ddl-parser/src/test/resources/oracle/examples/ddl_create.sql +++ b/debezium-ddl-parser/src/test/resources/oracle/examples/ddl_create.sql @@ -18,6 +18,82 @@ create table products (id NUMBER(4) NOT NULL PRIMARY KEY, name VARCHAR2(255) NOT CREATE TABLE T$BO_PATIENT_LMAP NOLOGGING TABLESPACE CMX_TEMP_TDE PARALLEL (DEGREE 1) AS SELECT DISTINCT XREF.ORIG_ROWID_OBJECT, XREF.ROWID_OBJECT FROM C_S_PATIENT STAGE INNER JOIN C_BO_PATIENT_XREF XREF ON XREF.ORIG_ROWID_OBJECT = STAGE.ROWID_OBJECT WHERE STAGE.ROWID_OBJECT IS NOT NULL ; CREATE TABLE "ORACDC"."DEPARTMENT" ( "EMP_NO" VARCHAR2(20) NOT NULL ENABLE, "REQUEST_ID" VARCHAR2(30) NOT NULL ENABLE, "EMP_RCODE" NUMBER(2,0), "EMP_RFLAG" VARCHAR2(20), "EMP_RMSG" VARCHAR2(1000), "EMP_EMP_AMOUNT" NUMBER(8,2), "EMP_EMP_AVS" VARCHAR2(20), "EMP_EMP_CODE" VARCHAR2(200), "EMP_EMP_TIME" VARCHAR2(20), "LAST_UPD_DATE" DATE, "LAST_UPD_BY" VARCHAR2(20), "SITE_ID" NUMBER(5,0) DEFAULT NULL NOT NULL ENABLE, "OBSOLETE_FLAG" CHAR(1) DEFAULT 'N' NOT NULL ENABLE, "PRODUCT_TYPE_ID" NUMBER DEFAULT 2, "TRX_NUMBER" VARCHAR2(30), "RECONCILIATION_ID" VARCHAR2(60), "REQUEST_TOKEN" VARCHAR2(256), "LOAD_TIMESTAMP" TIMESTAMP (6), "PAYMENT_TYPE" VARCHAR2(50), "TRANSACTION_SOURCE" VARCHAR2(50), "CREDIT_CARD_TYPE" VARCHAR2(50), SUPPLEMENTAL LOG GROUP "GGS_19282" ("EMP_NO", "REQUEST_ID") ALWAYS, SUPPLEMENTAL LOG DATA (ALL) COLUMNS, CONSTRAINT "DEPARTMENT_FK" FOREIGN KEY ("EMP_NO") REFERENCES "ORACDC"."MEM_REG" ("EMP_NO") ENABLE NOVALIDATE ) PARTITION BY HASH ("EMP_NO") (PARTITION "DEPARTMENT_P1" ,PARTITION "DEPARTMENT_P2" , PARTITION "DEPARTMENT_P32" ); CREATE TABLE "ODS_XMES_QY"."ORDER" ("Oid" CHAR(36), "CONTRACT" CHAR(36), CONSTRAINT "PK_ORDER" PRIMARY KEY ("Oid") USING INDEX ENABLE, SUPPLEMENTAL LOG GROUP "GGS_87678" ("Oid") ALWAYS) INMEMORY PRIORITY CRITICAL MEMCOMPRESS FOR QUERY LOW DISTRIBUTE AUTO FOR SERVICE ALL NO DUPLICATE; +-- Create External Table +CREATE TABLE deptXTec3 + ORGANIZATION EXTERNAL ( TYPE ORACLE_DATAPUMP DEFAULT DIRECTORY def_dir1 + ACCESS PARAMETERS (COMPRESSION ENABLED) + LOCATION ('dept.dmp')); + +CREATE TABLE inv_part_all_xt (PRODUCT_ID NUMBER(6), WAREHOUSE_ID NUMBER(3), QUANTITY_ON_HAND NUMBER(8)) + ORGANIZATION EXTERNAL ( TYPE ORACLE_DATAPUMP DEFAULT DIRECTORY def_dir1 + ACCESS PARAMETERS (COMPRESSION ENABLED) + LOCATION ('inv_p1_xt.dmp','inv_p2_xt.dmp')); + +CREATE TABLE emp_load (first_name CHAR(15), last_name CHAR(20), resume CHAR(2000), picture RAW (2000)) + ORGANIZATION EXTERNAL ( TYPE ORACLE_LOADER DEFAULT DIRECTORY ext_tab_dir + ACCESS PARAMETERS (FIELDS (first_name VARCHARC(5,12), last_name VARCHARC(2,20), resume VARCHARC(4,10000), picture VARRAWC(4,100000))) + LOCATION ('info.dat')); + +CREATE TABLE emp_load (first_name CHAR(15), last_name CHAR(20), resume CHAR(2000), picture RAW (2000)) + ORGANIZATION EXTERNAL ( TYPE ORACLE_LOADER DEFAULT DIRECTORY ext_tab_dir + ACCESS PARAMETERS ( RECORDS VARIABLE 2 DATA IS BIG ENDIAN CHARACTERSET US7ASCII + FIELDS (first_name VARCHAR(2,12), last_name VARCHAR(2,20), resume VARCHAR(4,10000), picture VARRAW(4,100000))) + LOCATION ('info.dat')); + +--CREATE TABLE emp_load (first_name CHAR(15), last_name CHAR(20), year_of_birth INT, phone CHAR(12), area_code CHAR(3), exchange CHAR(3), extension CHAR(4)) +-- ORGANIZATION EXTERNAL ( TYPE ORACLE_LOADER DEFAULT DIRECTORY ext_tab_dir +-- ACCESS PARAMETERS ( FIELDS RTRIM (first_name (1:15) CHAR(15), last_name (*:+20), year_of_birth (36:39), phone (40:52), area_code (*-12: +3), exchange (*+1: +3), extension (*+1: +4))) +-- LOCATION ('info.dat')); + +CREATE TABLE emp_load (first_name CHAR(15), last_name CHAR(20), year_of_birth CHAR(4)) + ORGANIZATION EXTERNAL ( TYPE ORACLE_LOADER DEFAULT DIRECTORY ext_tab_dir + ACCESS PARAMETERS ( FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '(' and ')' LRTRIM ) + LOCATION ('info.dat')); + +CREATE TABLE xtab (recno varchar2(2000)) + ORGANIZATION EXTERNAL ( TYPE ORACLE_LOADER DEFAULT DIRECTORY data_dir + ACCESS PARAMETERS ( RECORDS DELIMITED BY NEWLINE + PREPROCESSOR execdir:'zcat' + LOGFILE 'deptxt1.log' + BADFILE 'deptXT.bad' + FIELDS TERMINATED BY ',' MISSING FIELD VALUES ARE NULL (recno char(2000))) + LOCATION ('foo.dat.gz')) REJECT LIMIT UNLIMITED; + +CREATE TABLE deptxt1 ( deptno number(2), dname varchar2(14), loc varchar2(13)) + ORGANIZATION EXTERNAL ( TYPE ORACLE_LOADER DEFAULT DIRECTORY dpump_dir + ACCESS PARAMETERS ( EXTERNAL VARIABLE DATA + LOGFILE 'deptxt1.log' + READSIZE=10000 + PREPROCESSOR execdir:'uncompress.sh' ) + LOCATION ('deptxt1.dmp')) REJECT LIMIT UNLIMITED; + +CREATE TABLE "T_XT" ("C0" VARCHAR2(2000)) + ORGANIZATION EXTERNAL ( TYPE ORACLE_LOADER DEFAULT DIRECTORY DMPDIR + ACCESS PARAMETERS ( RECORDS XMLTAG ("home address", "work address", "home phone") + READSIZE 1024 + SKIP 0 + FIELDS NOTRIM MISSING FIELD VALUES ARE NULL) + LOCATION ('t.dat')) REJECT LIMIT UNLIMITED; + +CREATE TABLE emp_load (first_name CHAR(15), last_name CHAR(20), year_of_birth CHAR(4)) + ORGANIZATION EXTERNAL ( TYPE ORACLE_LOADER DEFAULT DIRECTORY ext_tab_dir + ACCESS PARAMETERS ( RECORDS DELIMITED BY '|' FIELDS TERMINATED BY ',' + ( first_name CHAR(7), last_name CHAR(8), year_of_birth CHAR(4))) + LOCATION ('info.dat')); + +CREATE TABLE emp_load (first_name CHAR(15), last_name CHAR(20), year_of_birth CHAR(4)) + ORGANIZATION EXTERNAL ( TYPE ORACLE_LOADER DEFAULT DIRECTORY ext_tab_dir + ACCESS PARAMETERS (RECORDS FIXED 20 FIELDS (first_name CHAR(7), last_name CHAR(8), year_of_birth CHAR(4))) + LOCATION ('info.dat')); + +--CREATE TABLE CUSTOMER_TABLE (cust_num VARCHAR2(10), order_num VARCHAR2(20), order_date DATE, item_cnt NUMBER, description VARCHAR2(100), order_total NUMBER(8,2)) +-- ORGANIZATION EXTERNAL ( TYPE ORACLE_HIVE +-- ACCESS PARAMETERS ( +-- com.oracle.bigdata.tableName: order_db.order_summary +-- com.oracle.bigdata.colMap: {"col":"ITEM_CNT", "field":"order_line_item_count"} +-- com.oracle.bigdata.overflow: {"action":"ERROR", "col":"DESCRIPTION"} +-- com.oracle.bigdata.errorOpt: [{"action":"replace", "value":"INV_NUM" , "col":["CUST_NUM","ORDER_NUM"]} , {"action":"reject", "col":"ORDER_TOTAL"}] +-- )); -- Create index create index hr.name on hr.table (id,data) tablespace ts; create unique index idx_eshp_auction_file_history_id on eshp_auction_file_history(history_id);