采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
sql 语句 values(?) 报错,如果是values(‘test’),则是可以插入数据
如下图所示
同学你好, 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预编译的实现就在这个方法里。
非常感谢!
果然是如老师所说的,就是预编译出现了问题,仔细检查后,补充完整预编译后的代码,重新测试ok,谢谢老师
登录后可查看更多问答,登录/注册
Flink 核心技能实操 + 亿级数据性能调优 进阶大数据开发高手
57 12
235 9
245 7
218 7
196 6