diff --git a/debezium-connector-oracle/src/main/java/io/debezium/connector/oracle/antlr/listener/ColumnDefinitionParserListener.java b/debezium-connector-oracle/src/main/java/io/debezium/connector/oracle/antlr/listener/ColumnDefinitionParserListener.java index 5acedc2e0..05cd66b83 100644 --- a/debezium-connector-oracle/src/main/java/io/debezium/connector/oracle/antlr/listener/ColumnDefinitionParserListener.java +++ b/debezium-connector-oracle/src/main/java/io/debezium/connector/oracle/antlr/listener/ColumnDefinitionParserListener.java @@ -50,7 +50,7 @@ Column getColumn() { @Override public void enterColumn_definition(PlSqlParser.Column_definitionContext ctx) { resolveColumnDataType(ctx); - if (ctx.DEFAULT() != null) { + if (ctx != null && ctx.DEFAULT() != null) { columnEditor.defaultValueExpression(ctx.column_default_value().getText()); } super.enterColumn_definition(ctx); @@ -69,7 +69,7 @@ public void enterPrimary_key_clause(PlSqlParser.Primary_key_clauseContext ctx) { @Override public void enterModify_col_properties(PlSqlParser.Modify_col_propertiesContext ctx) { resolveColumnDataType(ctx); - if (ctx.DEFAULT() != null) { + if (ctx != null && ctx.DEFAULT() != null) { columnEditor.defaultValueExpression(ctx.column_default_value().getText()); } super.enterModify_col_properties(ctx); @@ -303,7 +303,8 @@ else if (ctx.native_datatype_element().ROWID() != null) { .type(ctx.native_datatype_element().getText()); } } - else if (ctx.INTERVAL() != null + else if (ctx != null + && ctx.INTERVAL() != null && ctx.YEAR() != null && ctx.TO() != null && ctx.MONTH() != null) { @@ -315,7 +316,8 @@ else if (ctx.INTERVAL() != null columnEditor.length(Integer.valueOf((ctx.expression(0).getText()))); } } - else if (ctx.INTERVAL() != null + else if (ctx != null + && ctx.INTERVAL() != null && ctx.DAY() != null && ctx.TO() != null && ctx.SECOND() != null) { diff --git a/debezium-ddl-parser/src/test/resources/oracle/examples/ddl_alter.sql b/debezium-ddl-parser/src/test/resources/oracle/examples/ddl_alter.sql index 4f7831130..5dfe05a15 100644 --- a/debezium-ddl-parser/src/test/resources/oracle/examples/ddl_alter.sql +++ b/debezium-ddl-parser/src/test/resources/oracle/examples/ddl_alter.sql @@ -19,6 +19,7 @@ ALTER TABLE S.PRODUCTS DROP PARTITION p0 UPDATE INDEXES; ALTER TABLE S.PRODUCTS DROP PARTITION p0 UPDATE GLOBAL INDEXES NOPARALLEL; ALTER TABLE S.PRODUCTS DROP PARTITION p0 INVALIDATE GLOBAL INDEXES NOPARALLEL; ALTER TABLE S.PRODUCTS DROP PARTITION p0 UPDATE INDEXES NOPARALLEL; +ALTER TABLE TEST001 MODIFY NAME DEFAULT NULL; -- Alter table add unique index alter table dbz1211 add constraint name unique (id,data) using index tablespace ts; alter table dbz1211_child add constraint name unique (id) using index tablespace ts; 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 2624c73ce..3c913f11f 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 @@ -225,6 +225,7 @@ CREATE TABLE CUSTOMER_TABLE (cust_num VARCHAR2(10), order_num VARCHAR2(20), orde CREATE TABLE TT_BSTOFF_VERDICHT ( TrxKey NUMBER(12), BStoffPKey NUMBER(12), BStoffBOId VARCHAR2(40), BStoffBelegNr NUMBER(12), BStoffBetrag NUMBER(15,2), BStoffBetragWA NUMBER(15,2), PRIMARY KEY (TrxKey, BStoffPKey)) ORGANIZATION INDEX; CREATE TABLE WBXCRLOG (CRID NUMBER not null, CONFLCITTIME DATE default SYSDATE, CONSTRAINT PK_WBXCRLOG PRIMARY KEY(CONFLICTTIME,CRID) USING INDEX TABLESPACE SPLEX_INDX LOCAL) PARTITION BY RANGE(CONFLICTTIME) INTERVAL(NUMTOYMINTERVAL(1, 'MONTH')) STORE IN (SPLEX_DATA) ( PARTITION P201805 VALUES LESS THAN (TO_DATE('2018-06-01', 'YYYY-MM-DD')) TABLESPACE SPLEX_DATA, PARTITION P201806 VALUES LESS THAN (TO_DATE('2018-07-01', 'YYYY-MM-DD')) TABLESPACE SPLEX_DATA ); CREATE TABLE "MYUSER"."ITEMS" ("ID" NUMBER(4,0) GENERATED BY DEFAULT ON NULL AS IDENTITY MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 101 CACHE 20 NOORDER NOCYCLE NOKEEP NOSCALE NOT NULL ENABLE, "NAME" VARCHAR2(255) NOT NULL ENABLE, "DESCRIPTION" VARCHAR2(512), "COST" FLOAT(126), PRIMARY KEY ("ID") USING INDEX ENABLE, SUPPLEMENTAL LOG DATA (ALL) COLUMNS); +CREATE TABLE TEST001(ID NUMBER, NAME VARCHAR2(1) DEFAULT ('0')); -- 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);