ERROR ORA-00936: missing expression (eu.solutions.a2.cdc.oracle.OraCdcLogMinerWorkerThread:669)
ulan-yisaev opened this issue · 4 comments
Hi, Aleksei!
I am getting ORA-00936 error when switching archived logs. Please help me figure it out.
My environment:
CentOS Linux release 7.8.2003
kafka_2.13-2.8.0 (open source)
jdk1.8.0_281
oracdc 0.9.7.8
My configs in the attached archive my_configs.zip
[2021-05-07 21:57:02,342] INFO WorkerSourceTask{id=oracdc-front-0} flushing 0 outstanding messages for offset commit (org.apache.kafka.connect.runtime.WorkerSourceTask:487)
[2021-05-07 21:57:02,907] INFO Adding archived log /global/arch/front/front_1_2981_1042104127.arc thread# 1 sequence# 2981 first change number 33848970951 next log first change 33849080379 (eu.solutions.a2.cdc.oracle.OraCdcV$ArchivedLogImpl:150)
[2021-05-07 21:57:02,949] ERROR ORA-00936: missing expression
(eu.solutions.a2.cdc.oracle.OraCdcLogMinerWorkerThread:669)
[2021-05-07 21:57:02,950] ERROR SQL errorCode = 936, SQL state = '42000' (eu.solutions.a2.cdc.oracle.OraCdcLogMinerWorkerThread:672)
[2021-05-07 21:57:02,952] ERROR ORA-00936: missing expression
java.sql.SQLSyntaxErrorException: ORA-00936: missing expression
at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:509)
at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:461)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1104)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:553)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:269)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:655)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:270)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:91)
at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:807)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:983)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1168)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3666)
at oracle.jdbc.driver.T4CPreparedStatement.executeInternal(T4CPreparedStatement.java:1426)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3713)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1167)
at oracle.ucp.jdbc.proxy.oracle$1ucp$1jdbc$1proxy$1oracle$1StatementProxy$2oracle$1jdbc$1internal$1OraclePreparedStatement$$$Proxy.executeQuery(Unknown Source)
at eu.solutions.a2.cdc.oracle.OraCdcLogMinerWorkerThread.run(OraCdcLogMinerWorkerThread.java:294)
Caused by: Error : 936, Position : 149, Sql = select SCN, TIMESTAMP, OPERATION_CODE, XID, RS_ID, SSN, CSF, ROW_ID, DATA_OBJ#, DATA_OBJD#, SQL_REDO
from V$LOGMNR_CONTENTS
where ((OPERATION_CODE in (1,2,3) and (DATA_OBJ# in ())) or OPERATION_CODE in (7,36)), OriginalSql = select SCN, TIMESTAMP, OPERATION_CODE, XID, RS_ID, SSN, CSF, ROW_ID, DATA_OBJ#, DATA_OBJD#, SQL_REDO
from V$LOGMNR_CONTENTS
where ((OPERATION_CODE in (1,2,3) and (DATA_OBJ# in ())) or OPERATION_CODE in (7,36)), Error Msg = ORA-00936: missing expression
at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:513)
... 16 more
(eu.solutions.a2.cdc.oracle.OraCdcLogMinerWorkerThread:675)
[2021-05-07 21:57:02,953] INFO Stopping oracdc logminer source task. (eu.solutions.a2.cdc.oracle.OraCdcLogMinerTask:633)
[2021-05-07 21:57:07,921] INFO Saving oracdc state to /home/oracle/oracdc-master/tmp/oracdc-front.state file... (eu.solutions.a2.cdc.oracle.OraCdcLogMinerTask:683)
[2021-05-07 21:57:07,958] INFO oracdc state saved to /home/oracle/oracdc-master/tmp/oracdc-front.state file, elapsed 37 ms (eu.solutions.a2.cdc.oracle.OraCdcLogMinerTask:746)
Exception in thread "OraCdcLogMinerWorkerThread-3235410531843033" org.apache.kafka.connect.errors.ConnectException: java.sql.SQLSyntaxErrorException: ORA-00936: missing expression
at eu.solutions.a2.cdc.oracle.OraCdcLogMinerWorkerThread.run(OraCdcLogMinerWorkerThread.java:681)
Caused by: java.sql.SQLSyntaxErrorException: ORA-00936: missing expression
at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:509)
at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:461)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1104)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:553)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:269)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:655)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:270)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:91)
at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:807)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:983)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1168)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3666)
at oracle.jdbc.driver.T4CPreparedStatement.executeInternal(T4CPreparedStatement.java:1426)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3713)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1167)
at oracle.ucp.jdbc.proxy.oracle$1ucp$1jdbc$1proxy$1oracle$1StatementProxy$2oracle$1jdbc$1internal$1OraclePreparedStatement$$$Proxy.executeQuery(Unknown Source)
at eu.solutions.a2.cdc.oracle.OraCdcLogMinerWorkerThread.run(OraCdcLogMinerWorkerThread.java:294)
Caused by: Error : 936, Position : 149, Sql = select SCN, TIMESTAMP, OPERATION_CODE, XID, RS_ID, SSN, CSF, ROW_ID, DATA_OBJ#, DATA_OBJD#, SQL_REDO
from V$LOGMNR_CONTENTS
where ((OPERATION_CODE in (1,2,3) and (DATA_OBJ# in ())) or OPERATION_CODE in (7,36)), OriginalSql = select SCN, TIMESTAMP, OPERATION_CODE, XID, RS_ID, SSN, CSF, ROW_ID, DATA_OBJ#, DATA_OBJD#, SQL_REDO
from V$LOGMNR_CONTENTS
where ((OPERATION_CODE in (1,2,3) and (DATA_OBJ# in ())) or OPERATION_CODE in (7,36)), Error Msg = ORA-00936: missing expression
at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:513)
... 16 more
[2021-05-07 21:57:12,343] INFO WorkerSourceTask{id=oracdc-front-0} flushing 0 outstanding messages for offset commit (org.apache.kafka.connect.runtime.WorkerSourceTask:487)
connect.log.zip
Attaching full log
Salemetsiz-be Ulan,
This is issue due to incorrect setting of a2.include parameter, connector tried to build list of OBJECT_ID's for tables/partitions/subpartitions which corresponds to a2.include/a2.exclude settings but unable to build it. While I'll work on better diagnostic could you please:
- Send me value of your a2.include parameter to oracle@a2-solutions.eu
- Try to run connector with parameter a2.table.list.style set to dynamic
Kop rahmet!
Best regards,
Aleksei
Salemetsiz-be Ulan,
Could you please clone latest code with fix a2.include/a2.exclude validation - and test again.
Kop rahmet!
Best regards,
Aleksei
Здравствуйте, Алексей!
Thank you so much for fixing the issue - now it works perfectly!
[2021-05-08 14:11:58,821] INFO WorkerSourceTask{id=oracdc-front-0} flushing 0 outstanding messages for offset commit (org.apache.kafka.connect.runtime.WorkerSourceTask:487)
[2021-05-08 14:12:03,453] INFO Adding archived log /global/arch/front/front_1_3176_1042104127.arc thread# 1 sequence# 3176 first change number 33850577521 next log first change 33850582378 (eu.solutions.a2.cdc.oracle.OraCdcV$ArchivedLogImpl:150)
[2021-05-08 14:12:08,822] INFO WorkerSourceTask{id=oracdc-front-0} flushing 0 outstanding messages for offset commit (org.apache.kafka.connect.runtime.WorkerSourceTask:487)