刚刚升级到最新版本和grate NiFi 1.6.0,我在ExecuteSQL处理器上遇到了一个奇怪的错误。
错误:无法将多个命令插入预准备语句
因此,ExecuteSQL使用数据库连接池服务,该服务针对数据库运行一些查询,在这种情况下是Vertica(使用最新的jar),并且有多个顺序查询。
我设法通过将我的Apache NiFi Install回滚到NiFi 1.5.0来解决这个问题,现在一切正常。
我也可以复制错误。
我实际上在1.5.0 vs 1.6.0上对ExecuteSQL的行为做了一个简短的视频。
错误演示
还链接:https://youtu.be/FJPf7PDmTSE
有什么想法吗?也许是新版本的错误?
THX
作为对@Jagrut的回复
我再次复制了错误
https://www.youtube.com/watch?v=OvnwNz86EsY&feature=youtu.be
答案 0 :(得分:4)
NiFi 1.6
在ExecuteSQL
处理器中添加了对参数化语句的支持。这通过NIFI-978解决PR 2433。
ExecuteSQL
处理器获取有效的SQL选择查询,由处理器发布到数据库。它不表示支持多个选择查询。 (NiFi v1.6,NiFi v1.5)
在video中,MariaDB
连接为v1.6
和v1.5
引发了同样的异常,即:
java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'select '2' as col1' at line 2
v1.6
的错误在2:32
时出现,v1.5
的错误在4:25
时出现。