我需要调用在DB2中运行的存储过程。由于Oracle DB Adapter不支持DB2,我使用Java Embedding来调用存储过程。我在使用 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 的所有员工的所有员工姓名、编号和工资详细信息。但是我看到的输出只是最后一个员工详细信息。剩余的员工详细信息不是如图所示。如果我将变量 j 替换为 1 或 2 或 3 等,我仅得到该数组元素详细信息的输出,而其他详细信息未知。有人可以帮助我将整个结果集获取到输出变量。
最佳答案
您是否尝试在设置 is 子元素之前创建“/ns1:code1["+j+"] 元素?
我发现了这个问题报告:
http://oraclefusion1011.blogspot.com/2011/01/issue-with-setvariabledata-in-java.html
关于java - 我需要使用 Java Embedded 将结果数组写入任意类型且在 BPEL 中无界的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7401568/