使用准备好的语句 DB2 时获取 SQLCODE=-313

Posted

技术标签:

【中文标题】使用准备好的语句 DB2 时获取 SQLCODE=-313【英文标题】:Getting SQLCODE=-313 when using prepared statements DB2 【发布时间】:2016-05-25 21:02:33 【问题描述】:

目前我遇到一个问题,在 node-jdbc 中使用准备好的语句执行查询/插入时,有时会出现错误:

DB2 SQL Error: SQLCODE=-313, SQLSTATE=07004

在 IBM 网站上查找此错误代码时,它说:

指定的主机变量数不等于 参数标记

https://www.ibm.com/support/knowledgecenter/SSEPEK_10.0.0/com.ibm.db2z10.doc.codes/src/tpc/n313.dita

我还尝试删除所有准备好的语句并简单地设置值,这样做解决了我的问题,但由于明显的原因我不能这样做。此外,崩溃并非每次都发生,它可能发生在任何使用准备好的语句的查询上。

非常感谢任何帮助, 拉菲

编辑 - 添加到 dB 代码的链接:http://pastebin.com/sm1nbhdi

【问题讨论】:

请在问题中包含您的代码。 添加到链接中,谢谢。 您应该在问题中包含代码,而不仅仅是指向外部站点的链接。 【参考方案1】:

我知道这被标记为 javascript,但我在使用 NamedNativeQuery 的 java(带有 db2 和 eclipse 链接)中遇到了这个错误。这是一个与参数绑定有关的奇怪问题。我已有使用: 进行参数绑定的命名查询,例如:param 工作正常。

解决方案似乎是将参数绑定从: 更改为#

【讨论】:

以上是关于使用准备好的语句 DB2 时获取 SQLCODE=-313的主要内容,如果未能解决你的问题,请参考以下文章

运行生成插入语句的 DB2 过程时的 SQLCODE 433 SQLSTATE 42806

DB2执行插入语句 57016 SQLCODE=-668 原因码 "7"错误的快速解决办法

DB2 Error : SQLCODE=-802,SQLSTATE=22003 异常的原因

DB2 SQL 错误(SQLCODE:-964,SQLSTATE:57011)处理方法

DB2错误信息按照sqlcode排序

DB2错误信息按照sqlcode排序