我需要调用在DB2中运行的存储过程。由于Oracle数据库适配器不支持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和salary详细信息。但是我看到的输出只是最后一个员工详细信息.surinin员工详细信息不是如果我用1或2或3等替换变量j,我得到的只是那个数组元素的输出,而其他细节是未知的。有人帮我把整个结果集输出到输出变量。
答案 0 :(得分:0)
您是否尝试在设置为子元素之前创建“/ ns1:code1 [”+ j +“]元素?
我发现这个问题报告:
http://oraclefusion1011.blogspot.com/2011/01/issue-with-setvariabledata-in-java.html