** 配列操作を行う([[Oracle>Oracleメモ]]) [#j5292546]
#setlinebreak(on);

 /**
  * ネステッドテーブル(上限のない 一次元配列)
  */
 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;
 /


トップ   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS