コレクション オブジェクト内に格納されている値に基づいて、ApEx で選択リストを作成しようとしています。
基本的に、varchar2 の配列の値を設定する Java クラスを呼び出すストアド プロシージャを実行しています。
値を取得して dbms 出力に出力するには、次の PLSQL ブロックを実行します。
DECLARE
vArray testschema.stringarray_type := testschema.stringarray_type();
BEGIN
testschema.getLOV(vArray);
FOR i IN 1..vArray.COUNT LOOP
DBMS_OUTPUT.PUT_LINE('Counter: ' || i || ' Value: "' || vArray(i) || '".');
END LOOP;
END;
ここで必要なのは、それらの値を出力する代わりに、すべての値を選択リストに入れることだけです。
選択リストのLOVソースで機能するように、このPLSQLコードを書き直すにはどうすればよいですか?
コードを次のように変更する方法はありますか。
FOR i IN 1..vArray.COUNT LOOP
:P1_SELECT_LIST.append(vArray(i));
END LOOP;
それを動的アクションか何かで実行しますか?
ありがとう
編集:
ページの読み込み時に動的アクションを使用して PLSQL を実行する一時的な回避策を作成しました。オブジェクトの各値を plsql ブロックの varchar2 変数にカンマで区切って追加します。次に、非表示のページ アイテムをその変数の値に等しく設定すると、次のような値が保持されます。
item1,item2,item3,item4,item5
次に、javascript 動的アクションを使用して、アイテムの値をカンマで分割し、選択リストの html をカスタム作成の html 文字列に置き換えて、すべてのアイテムをオプションとしてリストします。
これは私の理想的な解決策ではないので、もっと良い方法があるかどうかを知りたいと思っています。または、この回避策の一部をより良いソリューションで使用できる可能性があります。