2

プロセスで次の pl/sql を使用してテキストを分離しています。テキストは表示され、レコードを保存するために 2 つのテキスト フィールドに配置されます。次のエラーは表示されませんが、APEX でプロセスを実行すると、「ORA-01403: データが見つかりません」と表示されます。これは、配列に保持されている値を APEX フォームのテキスト フィールドに渡す正しい方法ですか?

declare

v_array apex_application_global.vc_arr2;

begin

-- Convert delimited string to array
v_array := apex_util.string_to_table(:P1_OPERATION_JOB,'^');

:P1_ORDER := v_array(1);
:P1_LOCATION := v_array(2);

end;
4

1 に答える 1

2

あなたは確かにそのような配列から値を取得することができます。ただし、ORA-01403エラーが発生すると、どちらの位置にもデータがないことを示します。(Oracleは、plsql配列にデータがない位置のデータにアクセスしようとするとこのエラーをスローし、select intoがデータを取得しない場合も同じエラーをスローします)

分割の出力を確認するために、このコードを実行します。

DECLARE
    l_vc_arr2    APEX_APPLICATION_GLOBAL.VC_ARR2;
BEGIN
    apex_debug_message.log_message('Debugging string to table output:');
    l_vc_arr2 := APEX_UTIL.STRING_TO_TABLE(:P1_OPERATION_JOB, '^');
    FOR z IN 1..l_vc_arr2.count LOOP
        apex_debug_message.log_message('Item at position '||z||': '||l_vc_arr2(z));
    END LOOP;
END;

デバッグを有効にしてページを実行し、ループの出力のデバッグメッセージを確認します。アクセスしようとしている位置の1つに価値がない可能性があります。

于 2012-11-28T16:19:52.323 に答える