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 に割り当てられるすべての従業員のすべての従業員名、番号、および給与の詳細を表示することを期待しています。しかし、表示される出力は最後の従業員の詳細のみです。残りの従業員の詳細は表示されません。変数 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 に答える