Flink oracle-cdc会报这种错是什么鬼啊?Caused by: java.sql.SQLException: 无效的列类型
at oracle.jdbc.driver.Redirector$2.redirect(Redirector.java:261)
at oracle.jdbc.driver.Representation.getObject(Representation.java:423)
at oracle.jdbc.driver.Accessor.getObject(Accessor.java:986)
at oracle.jdbc.driver.OracleStatement.getObject(OracleStatement.java:6521)
at oracle.jdbc.driver.InsensitiveScrollableResultSet.getObject(InsensitiveScrollableResultSet.java:909)
at io.debezium.connector.oracle.logminer.LogMinerHelper.lambda$getSystime$0(LogMinerHelper.java:206)
at io.debezium.jdbc.JdbcConnection.queryAndMap(JdbcConnection.java:644)
at io.debezium.jdbc.JdbcConnection.queryAndMap(JdbcConnection.java:512)
at io.debezium.connector.oracle.logminer.LogMinerHelper.getSystime(LogMinerHelper.java:204)
at io.debezium.connector.oracle.logminer.LogMinerStreamingChangeEventSource.execute(LogMinerStreamingChangeEventSource.java:154)
... 7 more
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
根据您提供的错误信息,Caused by: java.sql.SQLException: 无效的列类型
是由 Oracle JDBC 驱动程序在处理某些列时无法正确映射数据类型导致的。这种问题通常出现在以下场景中:
以下是详细的解决方案和排查步骤。
BLOB
、CLOB
、XMLTYPE
等复杂类型。column.exclude
参数排除这些列。VARCHAR
或 NUMBER
),然后基于视图进行 CDC 同步。ojdbc8.jar
或更高版本)。lib
目录,并重启作业。database.tablename.case.insensitive=true
database.history=io.debezium.relational.history.MemoryDatabaseHistory
log.mining.strategy
参数,将其设置为 online_catalog
:log.mining.strategy=online_catalog
LogMinerHelper.getSystime
方法,表明问题可能与时间戳列的解析有关。log.level=DEBUG
BLOB
、CLOB
)通常需要特殊处理,建议优先排除或转换这些列。通过上述步骤,您可以逐步排查并解决 java.sql.SQLException: 无效的列类型
的问题。如果问题仍未解决,建议提供更详细的日志信息(如完整堆栈和表结构),以便进一步分析。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。