请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

插入数据到ch报错

图片描述

sql 语句 values(?) 报错,如果是values(‘test’),则是可以插入数据

如下图所示

图片描述

正在回答

1回答

同学你好, git上的代码运行没有报错, 我重现不了你的这个错误。从你的错误信息看, 感觉是没有配好 Flink-Connector-jdbc 的预编译, 所以 jdbc 识别不了 ? 这个占位符。而且后面按照你的做法, 批量插入根本没有插入成功, 'ch-imooc-test-5' 和 'ch-imooc-test-6' 这两条数据没有插入成功。

可以检查下 Flink-Connector-jdbc 的预编译是否配置成功。点击进入batchWrite, 再进入到 clickHouseJdbcSink.getSink() 这个方法里, 通过 sink 变量, 可以看到 JdbcSink.sink() 这个方法, sql预编译就在 ClickHouseJdbcStatementBuilder 这个类里配置的, 进入到这个类, 在 accept() 方法里, 找到 setPreparedStatement(), sql预编译的实现就在这个方法里。


0 回复 有任何疑惑可以回复我~
  • 提问者 maomaoking #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2023-09-09 09:07:51
  • 提问者 maomaoking #2
    果然是如老师所说的,就是预编译出现了问题,仔细检查后,补充完整预编译后的代码,重新测试ok,谢谢老师
    回复 有任何疑惑可以回复我~ 2023-09-09 09:09:15
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信