/**
* ネステッドテーブル(上限のない 一次元配列)
*/
DECLARE
TYPE VC_ARRAY IS TABLE OF VARCHAR2(10) NOT NULL;
MY_LIST VC_ARRAY;
ARRAY_LEN NUMBER(10) DEFAULT 100;
BEGIN
MY_LIST := VC_ARRAY(); -- 初期化
MY_LIST.EXTEND(ARRAY_LEN); -- 配列の個数を宣言、初期化
-- 値セット
MY_LIST(1) := 'AAA';
MY_LIST(2) := 'BBB';
MY_LIST(3) := 'CCC';
DBMS_OUTPUT.PUT_LINE('1:' || MY_LIST(1));
DBMS_OUTPUT.PUT_LINE('2:' || MY_LIST(2));
DBMS_OUTPUT.PUT_LINE('3:' || MY_LIST(3));
-- メモリ解放
MY_LIST.DELETE;
END;
/
/**
* VARRAY(上限のある可変長配列)
*/
DECLARE
TYPE VC_ARRAY IS VARRAY(5) OF VARCHAR2(10) NOT NULL;
MY_LIST VC_ARRAY;
BEGIN
MY_LIST := VC_ARRAY(); -- 初期化
MY_LIST.EXTEND(2); -- 配列を +2 個初期化
MY_LIST(1) := '111';
MY_LIST(2) := '222';
MY_LIST.EXTEND(3); -- 配列を +3 個初期化
MY_LIST(3) := '333';
MY_LIST(4) := '444';
MY_LIST(5) := '555';
DBMS_OUTPUT.PUT_LINE('1:' || MY_LIST(1));
DBMS_OUTPUT.PUT_LINE('2:' || MY_LIST(2));
DBMS_OUTPUT.PUT_LINE('3:' || MY_LIST(3));
DBMS_OUTPUT.PUT_LINE('4:' || MY_LIST(4));
DBMS_OUTPUT.PUT_LINE('5:' || MY_LIST(5));
MY_LIST.DELETE;
END;
/