2

我正在使用 jdbcRowSet 数据源并有一个简单的 sqlQuery:

SELECT * FROM MYSCHEMA.MYTABLE WHERE KEYCOLUMN=?

我想将此 SQL 与一个参数一起使用来指示我想检索哪些行。为此,我正在尝试计算 INTEGER 类型的 sqlParameter。每当我尝试这样做时,我都会收到一条错误消息

DB2 SQL 错误:SQLCODE=-313,SQLSTATE=07004,SQLERRMC=null,DRIVER=4.7.85

即使我将一个简单的单个数字放入 sqlParameter value 属性中,我最终也会遇到此错误。

每当我将参数直接硬编码到 sqlQuery 中时,一切正常。这里发生了什么?任何帮助是极大的赞赏。

(IBM Lotus Domino 8.5.3、IBM DB2 10.1、xpages 的最新 extlib)

4

2 回答 2

4

很抱歉错过了这么久,但实际上您在使用参数时发现了 jdbcRowSet 数据源中的错误。如前所述,它适用于 jdbcQuery 但不适用于 jdbcRowSet。

错误代码表明这一点:SQLCODE = -313, ERROR: THE NUMBER OF HOST VARIABLES SPECIFIED IS NOT EQUAL TO THE NUMBER OF PARAMETER MARKERS

该问题现在被跟踪为 SPR#BGLN9N4CZU。如果找到了解决方法,我将在这里更新,让您知道它将在哪个版本的 ExtLib 中

更新:此问题的修复包含在 OpenNTF 上的 XPages 扩展库的最新版本 v901 Release 9中。

于 2014-08-18T09:39:22.047 回答
0

我会发表评论,但我还没有完全享有声誉。我假设您将查询写入控制台,然后剪切并粘贴到 SQL 工具(如 Tora)中。

我最近刚刚完成了一个使用 JDBC 从 Oracle 中提取数据的项目。我在我的博客上记录了它,包括这里的代码:http: //notesspeak.blogspot.com/2013/02/notes-to-oracle-using-jdbc-end-result.html 也许这有助于了解我是如何处理它的,代码就在那里。我不使用 RowSet,而是将动态 SQL 查询构建为字符串,然后执行查询。注意:顶部的 SELECT 不是动态的,更下方的 UPDATE 是动态构建的。

于 2013-02-25T18:38:04.580 回答