1

我需要调用在 DB2 中运行的存储过程。由于 Oracle DB 适配器不支持 DB2,我使用 Java 嵌入来调用存储过程。我在使用 Java 嵌入调用存储过程并获取结果集时没有问题。问题从开始将结果集分配给输出变量时开始。我使用下面的片段来设置变量。

rset=statement.executeQuery("SELECT name, number, salary from Employee");
rset = statement.getResultSet();
int j=1;
 if (rset != null)
{
while(rset.next())
{
    name=rset.getString("name");
    name=rset.getString("number");
    name=rset.getString("salary");
    setVariableData("temp","payload","/ns1:code1["+j+"]/ns1:empname",name); 
    setVariableData("temp","payload","/ns1:code1["+j+"]/ns1:empno",number);
    setVariableData("temp","payload","/ns1:code1["+j+"]/ns1:salary",salary); 
        j=j+1;
}
}

在上面提到的代码中,我希望显示所有要分配给输出变量 temp 的员工的所有 empname、number 和工资详细信息。但我看到的输出只是最后一个员工详细信息。其余的员工详细信息不显示。如果我将变量 j 替换为 1 或 2 或 3 等,我仅得到该数组元素详细信息的输出,而其他详细信息未知。有人可以帮助我将整个结果集设置为输出变量。

4

1 回答 1

0

您是否尝试在设置为子元素之前创建 "/ns1:code1["+j+"] 元素?

我发现了这个问题报告:

http://oraclefusion1011.blogspot.com/2011/01/issue-with-setvariabledata-in-java.html

于 2011-09-16T15:41:23.557 回答