0

私はJavaとSQLの両方の初心者です。Oracle Cursor タイプの結果セットから値を取得する方法について、ヘルプをリクエストしています。

Java からストアド プロシージャを呼び出し、さらに処理するために結果セットの値を取得しようとしています。

ストアド プロシージャには、Input_1 や Input_2 などの IN パラメータがほとんどありません。OUT パラメータは、OUT_1 NUMBER(10)、OUT_2 VARCHAR 2 (30 BYTE)、"OUT_3" AS VARRAY (750) OF Output3_OBJ として定義される cursorType として定義されます。出力 3_OBJ は次のように定義されます。

CREATE OR REPLACE TYPE schema."Output 3_OBJ" AS OBJECT
    (
      ATTRIBUTE_C               VARCHAR2(30),
      VALUE_X                   VARCHAR2(2000 BYTE),
      VALUE_TS                  TIMESTAMP(6),
      VALUE_I                   NUMBER(10),
      OPERAND_C                 VARCHAR2(10)
    )

OUT_1 と OUT_2 を取得できます。OUT_3 の下の各サブ要素を取得するために、私を助けてください。別のストアド プロシージャにも同じ構造があり、配列記述子、配列リスト、および配列を使用して、これらのオブジェクト型を Oracle に渡します。しかし、Oracleからデータを取得している間、これをさまざまに組み合わせて使用​​することにうんざりしましたが、機能しませんでした。誰かがサンプルコードでこれを手伝ってくれたら幸いです。ありがとう。

4

1 に答える 1

0

このように入ることができます

stmt.registerOutParameter(3, Types.ARRAY, "Output 3_OBJ");
stmt.execute();
Array array = stmt.getArray(3);
于 2013-03-08T07:51:07.317 に答える