0

オラクルで私が作成した

create type INTERFACE_VALUES as OBJECT (
IVKEY VARCHAR2(32),
IVVALUE VARCHAR2(250)

);

create type T_INTERFACE_VALUES as TABLE OF INTERFACE_VALUES;   

Java側から、マップを配列に変換することにより、ストアドプロシージャへの入力として1つのMAPを渡しています。

そして、このマップを入力パラメーターとして受け入れるための1つのストアドプロシージャを作成しました。

PROCEDURE S_MAP_PARAMETERS(   pVALUES IN T_INTERFACE_VALUES   ) AS
 ???

END S_MAP_PARAMETERS;

だから私はSQLでpVALUESを読む必要があります。どうすればいいですか?

ありがとう

4

2 に答える 2

1

Oracle のネストされたテーブル タイプは、キーと値のコレクションではありません。したがって、テーブルをループしてから、pValuesオブジェクトごとに属性にアクセスするIVVALUE必要IVKEYがあり、複数の方法でそれを行うことができます。

TABLE1-関数を使用してカーソルを介して

CURSOR iterate as
SELECT *
  FROM TABLE(pValues)

次に、コードで

For Rec in iterate
loop
    --for example
    DBMS_OUTPUT.PUT_LINE(rec.IVVALUE)
end loop;

count2-ネストされたテーブル関数を使用して、一度に1つのアイテムをループします。

For indx in 1..pValues.COUNT
Loop
 --access it using indx pvalues(indx)
 --for example
 DBMS_OUTPUT.PUT_LINE(pvalues(indx).IVVALUE)

end loop
于 2013-07-23T14:59:11.420 に答える