-
Bug
-
Resolution: Done
-
Major
-
3.0.9.Final
-
None
Bug report
What Debezium connector do you use and what version?
Class : io.debezium.connector.oracle.OracleConnector
Version : debezium 3.0.8.Final
What is the connector configuration?
{ "name": "oracle_<DB_ALIAS>_source", "connector.class": "io.debezium.connector.oracle.OracleConnector", "database.connection.adapter": "logminer", "database.dbname": "<DBNAME>", "database.password": "********", "database.url": "jdbc:oracle:thin:@<DB_HOST>:<DB_PORT>:<DB_SID>", "database.user": "<DB_USER>", "decimal.handling.mode": "double", "event.processing.failure.handling.mode": "warn", "incremental.snapshot.chunk.size": "50000", "internal.log.mining.log.query.max.retries": "15", "key.converter": "io.confluent.connect.avro.AvroConverter", "key.converter.schema.registry.url": "http://<SCHEMA_REGISTRY_HOST>:<SCHEMA_REGISTRY_PORT>", "log.mining.archive.destination.name": "<LOG_ARCHIVE_DEST>", "log.mining.batch.size.default": "40000", "log.mining.batch.size.increment": "30000", "log.mining.batch.size.max": "500000", "log.mining.batch.size.min": "10000", "log.mining.query.filter.mode": "in", "log.mining.strategy": "online_catalog", "log.mining.transaction.retention.ms": "7200000", "notification.enabled.channels": "sink", "notification.sink.topic.name": "oracle_<DB_ALIAS>_server-notification", "query.fetch.size": "50000", "schema.history.internal.kafka.bootstrap.servers": "<KAFKA_HOST>:<KAFKA_PORT>", "schema.history.internal.kafka.topic": "schema.changes.oracle_<DB_ALIAS>_source", "schema.history.internal.skip.unparseable.ddl": "true", "schema.history.internal.store.only.captured.tables.ddl": "true", "schema.name.adjustment": "avro", "signal.data.collection": "<DBNAME>.<DB_USER>.DEBEZIUM_SIGNAL", "signal.enabled.channels": "kafka", "signal.kafka.bootstrap.servers": "<KAFKA_HOST>:<KAFKA_PORT>", "signal.kafka.groupId": "kafka-signal", "signal.kafka.poll.timeout.ms": "100", "signal.kafka.topic": "oracle_<DB_ALIAS>_server-signal", "snapshot.fetch.size": "100000", "snapshot.max.threads": "10", "snapshot.mode": "no_data", "table.include.list": "<SCHEMA>.<TABLE1>,<SCHEMA>.<TABLE2>,<SCHEMA>.<TABLE3>, ...", "time.precision.mode": "connect", "topic.prefix": "oracle_<DB_ALIAS>", "transforms": "stream_rewrite", "transforms.stream_rewrite.add.fields": "op:CDC_OPER,ts_ms:CDC_MOD_TIME,source.ts_ms:CDC_DB_MOD_TIME", "transforms.stream_rewrite.add.fields.prefix": "", "transforms.stream_rewrite.delete.tombstone.handling.mode": "rewrite", "transforms.stream_rewrite.type": "io.debezium.transforms.ExtractNewRecordState", "value.converter": "io.confluent.connect.avro.AvroConverter", "value.converter.schema.registry.url": "http://<SCHEMA_REGISTRY_HOST>:<SCHEMA_REGISTRY_PORT>" }
What is the captured database version and mode of deployment?
(E.g. on-premises, with a specific cloud provider, etc.)
on-premises - > Oracle 19c
What behavior do you expect?
Parse DDL syntax
What behavior do you see?
ALTER TABLE "<SCHEMA>"."<TABLE>" ADD CONSTRAINT "<PK_NAME>" PRIMARY KEY ("COL1", "COL2")
USING INDEX "<SCHEMA>"."<PK_NAME>" ENABLE;': (io.debezium.connector.oracle.OracleSchemaChangeEventEmitter)
io.debezium.text.ParsingException: DDL statement couldn't be parsed. Please open a Jira issue with the statement 'CREATE TABLE "<SCHEMA>"."<TABLE>"
( "COL1" VARCHAR2(256) DEFAULT 0 CONSTRAINT "<C1>" NOT NULL ENABLE,
"COL2" VARCHAR2(8) CONSTRAINT "<C2>" NOT NULL ENABLE,
"COL3" NUMBER(8,0) CONSTRAINT "<C3>" NOT NULL ENABLE,
"COL4" NUMBER(6,0) CONSTRAINT "<C4>" NOT NULL ENABLE,
"COL5" VARCHAR2(2) CONSTRAINT "<C5>" NOT NULL ENABLE,
"COL6" VARCHAR2(2) CONSTRAINT "<C6>" NOT NULL ENABLE,
"DATE1" DATE,
"DATE2" DATE,
"COL7" VARCHAR2(30),
"COL8" VARCHAR2(20),
"COL9" VARCHAR2(20),
"USERCRE" VARCHAR2(20),
"DATCRE" DATE,
"COL10" VARCHAR2(14),
"COL11" VARCHAR2(14),
"COL12" NUMBER(10,0),
"USERMOD" VARCHAR2(20),
"DATMOD" DATE,
"COL13" VARCHAR2(5),
"COL14" VARCHAR2(13),
"COL15" VARCHAR2(30),
"COL16" VARCHAR2(30),
"COL17" VARCHAR2(1) DEFAULT '0' CONSTRAINT "<C7>" NOT NULL ENABLE,
"COL18" VARCHAR2(30),
"COL19" VARCHAR2(26),
"COL20" VARCHAR2(256),
"COL21" VARCHAR2(30),
"DATE3" DATE,
"DATE4" DATE,
"COL22" VARCHAR2(48),
"DATE5" DATE,
"COL23" VARCHAR2(1) DEFAULT '0' NOT NULL ENABLE,
"COL24" VARCHAR2(14),
"COL25" VARCHAR2(30),
"COL26" NUMBER(8,0),
CONSTRAINT "<CHK1>" CHECK (COL17 IN ('1', '0')) ENABLE,
SUPPLEMENTAL LOG DATA (ALL) COLUMNS,
CONSTRAINT "<FK1>" FOREIGN KEY ("COL13")
REFERENCES "<SCHEMA>"."<REF_TABLE1>" ("COL13") ENABLE,
CONSTRAINT "<FK2>" FOREIGN KEY ("COL5")
REFERENCES "<SCHEMA>"."<REF_TABLE2>" ("COL5") ENABLE,
CONSTRAINT "<FK3>" FOREIGN KEY ("COL6")
REFERENCES "<SCHEMA>"."<REF_TABLE3>" ("COL6") ENABLE,
CONSTRAINT "<FK4>" FOREIGN KEY ("COL12")
REFERENCES "<SCHEMA>"."<REF_TABLE4>" ("COL12") ENABLE NOVALIDATE,
CONSTRAINT "<FK5>" FOREIGN KEY ("COL2")
REFERENCES "<SCHEMA>"."<REF_TABLE5>" ("COL2") ENABLE NOVALIDATE,
CONSTRAINT "<FK6>" FOREIGN KEY ("COL4", "COL3", "COL2")
REFERENCES "<SCHEMA>"."<REF_TABLE6>" ("COL4", "COL3", "COL2") ENABLE NOVALIDATE,
CONSTRAINT "<FK7>" FOREIGN KEY ("COL26")
REFERENCES "<SCHEMA>"."<REF_TABLE7>" ("COL26") ENABLE
)
PARALLEL (DEGREE 4 INSTANCES DEFAULT) ;
CREATE UNIQUE INDEX "<SCHEMA>"."<PK_NAME>" ON "<SCHEMA>"."<TABLE>" ("COL1", "COL2")
;
ALTER TABLE "<SCHEMA>"."<TABLE>" ADD CONSTRAINT "<PK_NAME>" PRIMARY KEY ("COL1", "COL2")
USING INDEX "<SCHEMA>"."<PK_NAME>" ENABLE;'
no viable alternative at input 'PARALLEL (DEGREE 4 INSTANCES'
at io.debezium.antlr.ParsingErrorListener.syntaxError(ParsingErrorListener.java:43)
...
[INFO] Connection gracefully closed (io.debezium.jdbc.JdbcConnection)
[WARN] Obtaining schema for table <SCHEMA>.<TABLE>, which should be already loaded, this may signal potential bug in fetching table schemas. (io.debezium.connector.oracle.logminer.processor.AbstractLogMinerEventProcessor)
Do you see the same behaviour using the latest released Debezium version?
(Ideally, also verify with latest Alpha/Beta/CR version)
No cheacked
Do you have the connector logs, ideally from start till finish?
(You might be asked later to provide DEBUG/TRACE level log)
<Your answer>
How to reproduce the issue using our tutorial deployment?
<Your answer>
Feature request or enhancement
For feature requests or enhancements, provide this information, please:
Which use case/requirement will be addressed by the proposed feature?
<Your answer>
Implementation ideas (optional)
<Your answer>