Jdbc DB2SQL错误:SQLCODE=-514,SQLSTATE=26501
当我使用JDBC执行准备好的语句时,如下所示:Jdbc DB2SQL错误:SQLCODE=-514,SQLSTATE=26501,jdbc,db2,Jdbc,Db2,当我使用JDBC执行准备好的语句时,如下所示: select count(1) from TableName where col1 = 9 and col2 = ? 它出现了一个DB2 SQL错误: SQLCODE=-514,SQLSTATE=26501,SQLERRMC=SQL\u CURSH200C1,DRIVER=3.64.104 更重要的是,这个问题并不是每次都会出现,有时它可以成功地查询 谁能告诉我这个问题的原因,非常感谢 PS:DB2版本是9.5,这里有一个到的链接,您可以自己查找
select count(1) from TableName where col1 = 9 and col2 = ?
它出现了一个DB2 SQL错误:
SQLCODE=-514,SQLSTATE=26501,SQLERRMC=SQL\u CURSH200C1,DRIVER=3.64.104
更重要的是,这个问题并不是每次都会出现,有时它可以成功地查询
谁能告诉我这个问题的原因,非常感谢
PS:DB2版本是9.5,这里有一个到的链接,您可以自己查找下一个错误
DB2认为select使用的是游标。试一试
select count(*) from TableName where col1 = 9 and col2 = ?
看看错误是否消失了
下面是IBMDB2错误代码手册中对错误的完整解释
-514
光标名称未处于准备状态
解释
应用程序试图使用未处于准备状态的游标“游标名称”。光标与以下语句关联:
- 使用DECLARE CURSOR的WITH HOLD选项
- 在使用完光标之前,不要执行提交或回滚操作
- 在提交或回滚后再次准备语句
如果无法获取错误,请放置用于准备语句并执行的完整代码段。谢谢。在提出问题之前,我已经阅读了这个DB2错误代码解释,但我仍然不知道解释与问题之间的关系。我没有为语句声明游标,也没有执行提交或回滚操作。请您向我解释更多的细节,非常感谢。@kingson:更改您准备好的语句,使其看起来像我在回答中给您的语句。使用
count(*)
而不是count(1)
真的会混淆解析器吗?@a_horse_with_no_name:这不是常见的DB2错误,所以我真的不知道。该错误可能由代码的其他部分触发。我想kingson可以告诉我们我的回答是否有效。@kingson:那么我们必须在代码中看到所有DB2语句。向代码展示如何准备和执行语句