DBZ-5488 Support undocumented DATAPUMP DDL clauses

This commit is contained in:
Chris Cranford 2022-08-08 10:21:15 -04:00 committed by Jiri Pechanec
parent 9ae17f5164
commit 58177b4685
3 changed files with 37 additions and 5 deletions

View File

@ -385,6 +385,7 @@ DAYS: 'DAYS';
DAY_TO_SECOND: 'DAY_TO_SECOND';
DBA: 'DBA';
DBA_RECYCLEBIN: 'DBA_RECYCLEBIN';
DBLINK: 'DBLINK';
DBMS_STATS: 'DBMS_STATS';
DB_ROLE_CHANGE: 'DB_ROLE_CHANGE';
DBTIMEZONE: 'DBTIMEZONE';
@ -510,6 +511,7 @@ ENCODING: 'ENCODING';
ENCLOSED: 'ENCLOSED';
ENCRYPT: 'ENCRYPT';
ENCRYPTION: 'ENCRYPTION';
ENCRYPTPASSWORDISNULL: 'ENCRYPTPASSWORDISNULL';
END: 'END';
END_OUTLINE_DATA: 'END_OUTLINE_DATA';
ENDIAN: 'ENDIAN';
@ -765,6 +767,7 @@ INTERNAL_CONVERT: 'INTERNAL_CONVERT';
INTERNAL_USE: 'INTERNAL_USE';
INTERPRETED: 'INTERPRETED';
INTERSECT: 'INTERSECT';
INTERNAL: 'INTERNAL';
INTERVAL: 'INTERVAL';
INT: 'INT';
INTO: 'INTO';
@ -2250,6 +2253,7 @@ WITHOUT: 'WITHOUT';
WITH_PLSQL: 'WITH_PLSQL';
WITH: 'WITH';
WORK: 'WORK';
WORKERID: 'WORKERID';
WRAPPED: 'WRAPPED';
WRAPPER: 'WRAPPER';
WRITE: 'WRITE';

View File

@ -2161,7 +2161,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* ')'? parallel_clause? (REJECT LIMIT (UNSIGNED_INTEGER | UNLIMITED))?
;
access_driver_type
@ -2170,7 +2170,7 @@ access_driver_type
external_table_data_props
: DEFAULT DIRECTORY quoted_string
| ACCESS PARAMETERS '(' (et_oracle_loader | et_oracle_datapump | et_oracle_hdfs_hive | USING CLOB subquery) ')'
| 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 )* ')'
;
@ -2184,6 +2184,15 @@ et_oracle_datapump
| COMPRESSION ( ENABLED (BASIC |LOW | MEDIUM | HIGH)? | DISABLED)?
| HADOOP_TRAILERS (ENABLED | DISABLED) VERSION (COMPATIBLE | LATEST | quoted_string )
| comments_oracle_datapump
// Undocumented, internal DATAPUMP operations used by Oracle
| DEBUG '=' '(' UNSIGNED_INTEGER ',' UNSIGNED_INTEGER ')'
| DATAPUMP INTERNAL TABLE tableview_name
| JOB '(' schema_name ',' tableview_name ',' UNSIGNED_INTEGER ')'
| WORKERID UNSIGNED_INTEGER
| PARALLEL UNSIGNED_INTEGER
| VERSION quoted_string
| ENCRYPTPASSWORDISNULL
| DBLINK quoted_string
;
et_oracle_hdfs_hive
@ -3231,7 +3240,7 @@ end_time_column
;
column_definition
: column_name (datatype | type_name)
: column_name (datatype | type_name)?
SORT?
(VISIBLE | INVISIBLE)?
(DEFAULT column_default_value | identity_clause)?
@ -4198,7 +4207,8 @@ error_logging_reject_part
;
dml_table_expression_clause
: table_collection_expression
: object_cast_relational_table_expression
| table_collection_expression
| '(' select_statement subquery_restriction_clause? ')'
| tableview_name sample_clause?
;
@ -4207,6 +4217,11 @@ table_collection_expression
: (TABLE | THE) ('(' subquery ')' | '(' expression ')' outer_join_sign?)
;
// Deprecated Oracle 10/11 RELATIONAL alias for casting object-types to relational tables
object_cast_relational_table_expression
: RELATIONAL '(' tableview_name NOT XMLTYPE ')'
;
subquery_restriction_clause
: WITH (READ ONLY | CHECK OPTION (CONSTRAINT constraint_name)?)
;

View File

@ -258,9 +258,22 @@ CREATE TABLE "t_ddl_0027"(
"DEPT" VARCHAR(50),
CONSTRAINT "PK_ID" PRIMARY KEY("PID"),
CONSTRAINT "CK_DEPT" CHECK ("DEPT" IN('IT', 'SALES', 'MANAGER')));
CREATE TABLE "ET$xxxx"
( "MANDT",
"WERKS",
"MATNR",
"GZEQUNR",
"GZEQUNED",
"MODNE",
"NAME1",
"MAKTX"
) ORGANIZATION EXTERNAL
( TYPE ORACLE_DATAPUMP DEFAULT DIRECTORY "DMPDP" ACCESS PARAMETERS ( DEBUG = (0 , 0) DATAPUMP INTERNAL TABLE "xxxx"."xxxx" JOB ( "GGS","SYS_EXPORT_TABLE_01",1) WORKERID 1 PARALLEL 1 VERSION '11.2.0.0.0' ENCRYPTPASSWORDISNULL COMPRESSION ENABLED ENCRYPTION DISABLED DBLINK 'TOPRD') LOCATION ('xxxx.dat') ) PARALLEL 1 REJECT LIMIT UNLIMITED
AS SELECT /*+ PARALLEL(KU$,1) */ "MANDT", "WERKS", "MATNR", "GZEQUNR", "GZEQUNED", "MODNE", "NAME1", "MAKTX"
FROM RELATIONAL("xxxx"."xxxx" @TOPRD NOT XMLTYPE) AS OF SCN 216399751091 KU$;
-- 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);
CREATE UNIQUE INDEX "IDENTITYDB"."IDX_CHANGENUMBERS_PK" ON "IDENTITYDB"."CHANGE_NUMBERS" ("CHANGE_NO", "EXPIRY_TIME") LOCAL (PARTITION "SYS_P44414" NOCOMPRESS ( SUBPARTITION "SYS_SUBP44398" , SUBPARTITION "SYS_SUBP44399" , SUBPARTITION "SYS_SUBP44400" , SUBPARTITION "SYS_SUBP44401" , SUBPARTITION "SYS_SUBP44403" , SUBPARTITION "SYS_SUBP44404" , SUBPARTITION "SYS_SUBP44405" , SUBPARTITION "SYS_SUBP44406" , SUBPARTITION "SYS_SUBP44407" , SUBPARTITION "SYS_SUBP44408" , SUBPARTITION "SYS_SUBP44409" , SUBPARTITION "SYS_SUBP44410" , SUBPARTITION "SYS_SUBP44411" , SUBPARTITION "SYS_SUBP44412" , SUBPARTITION "SYS_SUBP44413" ) )
CREATE UNIQUE INDEX "ORACDC"."DEPARTMENT_PK" ON "ORACDC"."DEPARTMENT" ("REQUEST_ID", "EMP_NO");
CREATE INDEX "SETTLEMENT"."TRADE_REQ_BASE_IDX6" ON "SETTLEMENT"."TRADE_REQ_BASE" ("UPDATED_AT") PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "SETTLEMENT" PARALLEL 1;
CREATE INDEX "SETTLEMENT"."TRADE_REQ_BASE_IDX6" ON "SETTLEMENT"."TRADE_REQ_BASE" ("UPDATED_AT") PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "SETTLEMENT" PARALLEL 1;