为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:达梦8,当前时间最新企业版
【操作系统】:
【CPU】:
【问题描述】*:flink-cdc-dm 读取达梦数据库数据时,无法正确读取json/jsonb类型数据。报 -3105 JSON值语法错误
读取到的值是 java.nio.HeapByteBuffer[pos=0 lim=218 cap=218] 这样的
报错如下:
[2026-07-07 10:34:58.274] [INFO] - [pool-9-thread-1] io.debezium.jdbc.JdbcConnection - Connection gracefully closed
[2026-07-07 10:34:58.274] [INFO] - [Source: other_table_1_tmp[1] -> Calc[2] -> TableToDataSteam -> Flat Map -> Flat Map -> anonymous_datastream_source$2[4] -> Calc[5] -> ConstraintEnforcer[6] (1/1)#0] com.ververica.cdc.connectors.base.source.reader.IncrementalSourceReader - The table schema discovery for stream split stream-split success
[2026-07-07 10:34:58.274] [INFO] - [Source: other_table_1_tmp[1] -> Calc[2] -> TableToDataSteam -> Flat Map -> Flat Map -> anonymous_datastream_source$2[4] -> Calc[5] -> ConstraintEnforcer[6] (1/1)#0] org.apache.flink.connector.base.source.reader.SourceReaderBase - Adding split(s) to reader: [StreamSplit{splitId='stream-split', offset={commit_scn=0, lcr_position=null, scn=4397936903}, endOffset={commit_scn=0, lcr_position=null, scn=-9223372036854775808}}]
[2026-07-07 10:34:58.274] [INFO] - [Source Data Fetcher for Source: other_table_1_tmp[1] -> Calc[2] -> TableToDataSteam -> Flat Map -> Flat Map -> anonymous_datastream_source$2[4] -> Calc[5] -> ConstraintEnforcer[6] (1/1)#0] org.apache.flink.connector.base.source.reader.fetcher.SplitFetcher - Starting split fetcher 1
[2026-07-07 10:34:58.294] [ERROR] - [jdbc-upsert-output-format-thread-1] org.apache.flink.connector.jdbc.internal.JdbcOutputFormat - JDBC executeBatch error, retry times = 1
java.sql.BatchUpdateException: -3105 JSON值语法错误
at dm.jdbc.driver.DBError.throwBatchUpdateException(SourceFile:755) ~[DmJdbcDriver18-8.1.3.140.jar:- 8.1.3.140 - Production]
at dm.jdbc.a.a.b(SourceFile:1138) ~[DmJdbcDriver18-8.1.3.140.jar:- 8.1.3.140 - Production]
at dm.jdbc.a.a.a(SourceFile:902) ~[DmJdbcDriver18-8.1.3.140.jar:- 8.1.3.140 - Production]
at dm.jdbc.driver.DmdbPreparedStatement.do_executeLargeBatch(SourceFile:693) ~[DmJdbcDriver18-8.1.3.140.jar:- 8.1.3.140 - Production]
at dm.jdbc.driver.DmdbPreparedStatement.do_executeBatch(SourceFile:641) ~[DmJdbcDriver18-8.1.3.140.jar:- 8.1.3.140 - Production]
at dm.jdbc.driver.DmdbPreparedStatement$4.run(SourceFile:1802) ~[DmJdbcDriver18-8.1.3.140.jar:- 8.1.3.140 - Production]
at dm.jdbc.driver.DmdbPreparedStatement$4.run(SourceFile:1) ~[DmJdbcDriver18-8.1.3.140.jar:- 8.1.3.140 - Production]
at dm.jdbc.driver.DmdbPreparedStatement.executeBatch(SourceFile:1818) ~[DmJdbcDriver18-8.1.3.140.jar:- 8.1.3.140 - Production]
at org.apache.flink.connector.jdbc.statement.FieldNamedPreparedStatementImpl.executeBatch(FieldNamedPreparedStatementImpl.java:65) ~[flink-connector-jdbc-3.2.0-1.18.jar:3.2.0-1.18]
at org.apache.flink.connector.jdbc.internal.executor.TableSimpleStatementExecutor.executeBatch(TableSimpleStatementExecutor.java:64) ~[flink-connector-jdbc-3.2.0-1.18.jar:3.2.0-1.18]
at org.apache.flink.connector.jdbc.internal.executor.TableBufferReducedStatementExecutor.executeBatch(TableBufferReducedStatementExecutor.java:98) ~[flink-connector-jdbc-3.2.0-1.18.jar:3.2.0-1.18]
at org.apache.flink.connector.jdbc.internal.JdbcOutputFormat.attemptFlush(JdbcOutputFormat.java:202) ~[flink-connector-jdbc-3.2.0-1.18.jar:3.2.0-1.18]
at org.apache.flink.connector.jdbc.internal.JdbcOutputFormat.flush(JdbcOutputFormat.java:172) ~[flink-connector-jdbc-3.2.0-1.18.jar:3.2.0-1.18]
at org.apache.flink.connector.jdbc.internal.JdbcOutputFormat.lambda$open$1(JdbcOutputFormat.java:112) ~[flink-connector-jdbc-3.2.0-1.18.jar:3.2.0-1.18]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_171]
at java.util.concurrent.FutureTask.runAndReset$$$capture(FutureTask.java:308) [?:1.8.0_171]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java) [?:1.8.0_171]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [?:1.8.0_171]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [?:1.8.0_171]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_171]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_171]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_171]
