使用准备好的语句 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 异常的原因