我需要使用Java Embedded将结果数组写入一个变量,该变量是任何类型且在BPEL中无界限

时间:2011-09-13 12:05:18

标签: java arrays soa bpel oracle-soa

我需要调用在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,我得到的只是那个数组元素的输出,而其他细节是未知的。有人帮我把整个结果集输出到输出变量。

1 个答案:

答案 0 :(得分:0)

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

我发现这个问题报告:

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