PL/SQLの添字配列の値が配列
何度やっても忘れちまうんで備忘録。
ちなみにPL/SQLの通常の配列インデックスは1オリジン参考。
SET SERVEROUTPUT ON -- -- 添字配列の値が配列の例 -- DECLARE TYPE tNameArray IS VARRAY(2) OF VARCHAR2(128); TYPE tSoejiArray IS TABLE OF tNameArray INDEX BY VARCHAR2(6); vTargetArray tSoejiArray; vKey VARCHAR2(6); -- 配列初期設定 PROCEDURE initArray(P_ARRAY OUT tSoejiArray) IS BEGIN p_ARRAY('000001') := tNameArray('ラーメン’、’らあめん'); p_ARRAY('000002') := tNameArray('つけ麺’、’つけめん'); END; BEGIN initArray(vTargetArray); DBMS_OUTPUT.PUT_LINE('コード,名前,ふりがな'); vKey := vTargetArray.FIRST; WHILE vKey IS NOT NULL LOOP DBMS_OUTPUT.PUT_LINE(vKey || ',' || vTargetArray(vKey)(1) || ',' || vTargetArray(vKey)(2)); vKey := vTargetArray.NEXT(vKey); END LOOP; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('その他エラー'); DBMS_OUTPUT.PUT_LINE('ErrCode: ' || sqlcode); DBMS_OUTPUT.PUT_LINE('ErrMsg : ' || sqlerrm); END; /