-
我的数据库是oracle11g centos7虚拟机
报错是
他能读出来我插入的第一条数据,但是报错就断开连接 |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 7 replies
-
Beta Was this translation helpful? Give feedback.
-
For Oracle version 11, debezium will set tableidcasesensitive to true by default, resulting in the table name being updated to lowercase. Therefore, the table completion log setting cannot be queried in Oracle, resulting in the false alarm of "supplementary logging not configured for table error". If it is the datastream API, add the configuration item of debezium 'database.tablename.case.insensitive' = 'false'. If the SQL method is used, add the configuration item 'debezium.database.tablename.case.insensitive' = 'false' in the option of the table 对于 oracle11 版本,debezium 会默认把 tableIdCaseInsensitive 设置为true, 导致表名被更新为小写,因此在oracle中查询不到 这个表补全日志设置,导致误报这个Supplemental logging not configured for table 错误”。 添加 debezium 的配置项 'database.tablename.case.insensitive' = 'false', 如果使用 SQL 的方式,则在表的 option 中添加配置项 'debezium.database.tablename.case.insensitive' = 'false' |
Beta Was this translation helpful? Give feedback.
自己debug找到了
我的表名是大写PATIENT,在源码中
可以看到tableId 自动把大写表名变成小写
进入isTableSupplementalLogDataAll方法
再进入tableSupplementalLoggingCheckQuery方法
他会执行这句sql,但是此时的TABLE_NAME 是小写,于是我在navicat中执行了sql
可以看到PATIENT表名为大写,源码中的sql执行出来是查不到的所以出错了
当我把表名改成小写,就可以了
但要是万一表名就是大写该怎么办,有点困惑,有大佬知道的话指点一下