配列操作を行う(Oracle)

/**
 * ネステッドテーブル(上限のない 一次元配列)
 */
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
Last-modified: 2009-06-11 (木) 00:48:56 (4347d)