Мне нужно записать полученный массив в переменную любого типа, неограниченную в BPEL, используя Java Embedded - PullRequest
1 голос
/ 13 сентября 2011

Мне нужно вызвать хранимую процедуру, выполняющуюся в DB2. Поскольку адаптер БД Oracle не поддерживает DB2, я использовал Java Embedded для вызова хранимой процедуры. У меня нет проблемы при вызове хранимой процедуры с использованием Java Embedding и получении набора результатов. Проблема начинается тогда, когда начинается присвоение результирующего набора выходной переменной. Я использую приведенный ниже фрагмент для установки переменной.

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;
}
}

В вышеприведенном коде я рассчитываю отобразить все empname, номер и сведения о зарплате всех сотрудников, которые будут назначены для выходной переменной temp. Но вывод, который я вижу, - это только последние данные сотрудника. Остальные данные сотрудника не являются показано. Если я заменяю переменную j либо 1, либо 2, либо 3 и т. д., я получаю выходные данные только о деталях этого элемента массива, тогда как другие детали неизвестны. Может ли кто-нибудь помочь мне получить полный набор результатов для выходной переменной.

1 Ответ

0 голосов
/ 16 сентября 2011

Вы пытались создать элемент "/ ns1: code1 [" + j + "] до того, как настройка является подэлементом?

Я нашел этот отчет о проблеме:

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

...