在 apache Camel 中使用 In 子句
Using In clause in apache Camel
我正在使用 camel 2.17.0 并且必须使用 SQL IN 子句执行更新查询。查询是
update MY_TABLE set STATUS = :#status where ID in (:#in:ids) AND TYPE = :#type
我已经将所有参数设置为骆驼头,参数ids是一个List并且在我执行期间列表中有四个元素。但是我收到 sql 异常
PreparedStatementCallback; uncategorized SQLException for SQL []; SQL state [null]; error code [0]; Number of parameters mismatch.
Expected: 6, was: 4; nested exception is java.sql.SQLException: Number of parameters mismatch. Expected: 6, was: 4
我不确定哪里出了问题。当我硬编码除参数列表 id 之外的所有值时,我能够更新 table 而不会出现任何错误。修改后的查询就像
update MY_TABLE set STATUS = 'SUCCESS' where ID in (:#in:corrIds) AND TYPE = 'type'
是否有任何规定,当我们使用 IN 子句时,我们不能在查询中提供任何其他参数?请指教
对于 in 子句,您需要在 2.18 上更新。但是,通过使用 2.17,只需将逗号分隔的字符串放入交换 header 中即可。它将自动映射。
请注意使用此技术进行的任何 SQL 注入。
我正在使用 camel 2.17.0 并且必须使用 SQL IN 子句执行更新查询。查询是
update MY_TABLE set STATUS = :#status where ID in (:#in:ids) AND TYPE = :#type
我已经将所有参数设置为骆驼头,参数ids是一个List
PreparedStatementCallback; uncategorized SQLException for SQL []; SQL state [null]; error code [0]; Number of parameters mismatch.
Expected: 6, was: 4; nested exception is java.sql.SQLException: Number of parameters mismatch. Expected: 6, was: 4
我不确定哪里出了问题。当我硬编码除参数列表 id 之外的所有值时,我能够更新 table 而不会出现任何错误。修改后的查询就像
update MY_TABLE set STATUS = 'SUCCESS' where ID in (:#in:corrIds) AND TYPE = 'type'
是否有任何规定,当我们使用 IN 子句时,我们不能在查询中提供任何其他参数?请指教
对于 in 子句,您需要在 2.18 上更新。但是,通过使用 2.17,只需将逗号分隔的字符串放入交换 header 中即可。它将自动映射。
请注意使用此技术进行的任何 SQL 注入。