-
Bug
-
Resolution: Done
-
Major
-
1.4.0.Beta1
-
None
When a schema history event is emitted for a partitioned table then the connector fails due to dbms_metadata.get_ddl querying from table type.
See
2020-12-09 11:21:39,465 ERROR OracleConnectorIT||engine Producer failure [io.debezium.pipeline.ErrorHandler] io.debezium.DebeziumException: java.sql.SQLException: ORA-31603: object "PLAYERS" of type TABLE not found in schema "DEBEZIUM" ORA-06512: at "SYS.DBMS_METADATA", line 6478 ORA-06512: at "SYS.DBMS_SYS_ERROR", line 105 ORA-06512: at "SYS.DBMS_METADATA", line 6465 ORA-06512: at "SYS.DBMS_METADATA", line 9202 ORA-06512: at line 1 at io.debezium.relational.RelationalSnapshotChangeEventSource.lambda$createSchemaChangeEventsForTables$2(RelationalSnapshotChangeEventSource.java:260) at io.debezium.pipeline.EventDispatcher.dispatchSchemaChangeEvent(EventDispatcher.java:268) at io.debezium.relational.RelationalSnapshotChangeEventSource.createSchemaChangeEventsForTables(RelationalSnapshotChangeEventSource.java:255) at io.debezium.relational.RelationalSnapshotChangeEventSource.doExecute(RelationalSnapshotChangeEventSource.java:127) at io.debezium.pipeline.source.AbstractSnapshotChangeEventSource.execute(AbstractSnapshotChangeEventSource.java:67) at io.debezium.pipeline.ChangeEventSourceCoordinator.lambda$start$0(ChangeEventSourceCoordinator.java:105) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: java.sql.SQLException: ORA-31603: object "PLAYERS" of type TABLE not found in schema "DEBEZIUM" ORA-06512: at "SYS.DBMS_METADATA", line 6478 ORA-06512: at "SYS.DBMS_SYS_ERROR", line 105 ORA-06512: at "SYS.DBMS_METADATA", line 6465 ORA-06512: at "SYS.DBMS_METADATA", line 9202 ORA-06512: at line 1 at oracle.jdbc.driver.T2CConnection.checkError(T2CConnection.java:1136) at oracle.jdbc.driver.T2CConnection.checkError(T2CConnection.java:1034) at oracle.jdbc.driver.T2CStatement.doDefineFetch(T2CStatement.java:1543) at oracle.jdbc.driver.T2CStatement.executeForRows(T2CStatement.java:1167) at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:933) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1082) at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:1276) at oracle.jdbc.driver.OracleStatementWrapper.executeQuery(OracleStatementWrapper.java:366) at io.debezium.connector.oracle.OracleSnapshotChangeEventSource.getCreateTableEvent(OracleSnapshotChangeEventSource.java:251) at io.debezium.relational.RelationalSnapshotChangeEventSource.lambda$createSchemaChangeEventsForTables$2(RelationalSnapshotChangeEventSource.java:257) ... 10 more
Use OracleConnectorIT.shouldSnapshotAndStreamChangesFromPartitionedTable for XStream adapter.