我正在尝试使用 Apache nifi 中的“ExecuteSQL”处理器执行以下查询。
INSERT INTO SampleDB VALUES (${rno}, '${tno}', '${tval}', '${lotno}', '${datval}') WHERE ${rno} NOT IN (SELECT rno FROM SampleDB);
这里${rno}
作为流文件属性获得。
执行时出现以下错误:
ExecuteSQL[id=01781107-63a4-1204-8110-6b19db3d5ffc] 无法执行 SQL 选择查询 INSERT INTO LimsOnCloud VALUES (1, 'CTG123', 'ITM123', '123', '5') WHERE 1 NOT IN (SELECT rno来自样本数据库);对于 StandardFlowFileRecord[uuid=93db20b2-5f9f-4521-ac42-11239abb94c2,claim=StandardContentClaim [resourceClaim=StandardResourceClaim[id=1615281573937-132, container=default, section=132], offset=168254, length=152],offset=0 ,name=098a8ad2-0dc9-4564-a242-8b4855b619b2,size=152] 由于关键字“WHERE”附近的语法不正确。;路由失败:com.microsoft.sqlserver.jdbc.SQLServerException:关键字“WHERE”附近的语法不正确。
无法弄清楚错误在哪里,或者有什么更好的方法来实现这一点。