【发布时间】:2021-12-03 09:16:55
【问题描述】:
我将不胜感激以下方面的帮助:
在为 JDBC 准备语句设置参数时,我收到 JDBCException。
错误所在的查询片段如下所示
... AND (tbl1.field1, tbl2.field2) IN ((?, ?), (?, ?)) ...
我的参数列表是一个值的 ArrayList
{123, 235689, 25,2568982}
如果我在 SQLDeveloper 中运行查询,将值替换为 '?' - 我得到了正确的结果 但是,在 Java 程序中运行时,它会抛出 JDBCException
An JDBC exception occurred. Statement: SELECT ... FROM .. WHERE ..AND (tbl1.field1,
tbl2.field2) IN ((?, ?), (?, ?)) .. Invalid column index
调试器将我带到执行此操作的行:
statement.setLong(i, lp.longValue());
'statement' 是 PreparedStatement ..
【问题讨论】:
-
您是否在循环中调用
statement.setLong(i, lp.longValue()),而i是从0开始的int?绑定变量从 1 开始索引,而不是 0。
标签: java oracle exception jdbc