当我使用 JDBC 执行如下准备好的语句时:
select count(1) from TableName where col1 = 9 and col2 = ?
它发生了 DB2 SQL 错误:
SQLCODE=-514,SQLSTATE=26501,SQLERRMC=SQL_CURSH200C1,驱动程序=3.64.104。
更何况这个问题不是每次都出来,有时候可以查询成功。
谁能告诉我问题的原因,非常感谢!
PS:DB2版本是9.5
这是DB2 错误代码的链接,因此您可以自己查找下一个错误。
DB2 认为您的选择正在使用游标。尝试
select count(*) from TableName where col1 = 9 and col2 = ?
看看错误是否消失。
这是 IBM DB2 错误代码手册中对错误的完整解释。
-514
CURSOR 游标名称未处于准备状态
应用程序已尝试使用未处于准备状态的游标“游标名称”。游标与以下语句相关联:
无法处理该语句。程序员响应
对于情况 1,请确保在尝试打开游标之前准备好在 DECLARE CURSOR 语句中为 'cursor-name' 命名的语句。
对于情况 2,请执行以下操作之一:
如果在运行 executeQuery() 之前未正确准备语句,则可能会出现此问题。如果您已正确准备查询并且已正确设置值,请检查代码。
如果您无法收到错误,请放置用于准备语句和执行的完整代码片段。