「コレクション型」の編集履歴(バックアップ)一覧はこちら

コレクション型 - (2005/11/15 (火) 11:43:41) の最新版との変更点

追加された行は緑色になります。

削除された行は赤色になります。

*PL/SQL コレクション型 それぞれ一次元の配列である。 **連想配列 -添え字の型定義が可能。(数値 or 文字列) -添え字は -2^21~2^31 まで使用可能。 -添え字は連続している必要はない。(疎結合) -配列サイズは自動拡張 ***宣言 > TYPE array IS TABLE OF VARCHAR2(10) INDEX BY BINARY_INTEGER; arrayと言う名前のVARCHAR2型の配列を作る。添え字は数値。 > TYPE array IS TABLE OF VARCHAR2(10) INDEX BY VARCHAR2(5); arrayと言う名前のVARCHAR2型の配列を作る。添え字は文字列。 ***初期化 > array_List array; > array_List(1) := 'aaa'; > array_List(9) := 'bbb'; > array_List(300) := 'ccc'; **ネステッド・テーブル -添え字は 1 ~ 2^31 まで使用可能。 ***宣言 > TYPE array IS TABLE OF VARCHAR2(10) NOT NULL; -NULLを許可しないVARCHAR2の配列。 -NOT NULLは省略可能。(NULLを許可する場合) ***初期化 > array_List array := array('aaa', 'bbb', 'ccc'); --初期化付宣言 > null_List array; --宣言のみ > null_List := array(); --初期化 > null_List.EXTEND(100); --添え字100を作成 > null_List(100); := 'aaa'; --代入 ***拡張 > array.EXTEND(100); > array(100) := 'aaa'; arrayの要素100を拡張し、aaaを代入する。(未拡張領域に対しての代入はエラー) **VARRAY 可変長配列 ***宣言 > TYPE array IS VARRAY(100) OF VARCHAR2(10) NOT NULL; 要素が最大100あるVARCHAR2の配列。NULLを許可しない。 ***初期化、拡張 > array_List array := array('aaa', 'bbb', 'ccc'); --初期化付宣言 > null_List array; > null_List.EXTEND(50); --配列を +50 初期化。 **参考URL [[Trick and Treat Oracle More Cool ! - PLSQL コレクション型>http://biz.rivus.jp/plsql_collection.html]] ---- *なんかあればどうぞ #comment(vsize=2,nsize=20,size=40)
#contents *PL/SQL コレクション型 それぞれ一次元の配列である。 **連想配列 -添え字の型定義が可能。(数値 or 文字列) -添え字は -2^21~2^31 まで使用可能。 -添え字は連続している必要はない。(疎結合) -配列サイズは自動拡張 ***宣言 > TYPE array IS TABLE OF VARCHAR2(10) INDEX BY BINARY_INTEGER; arrayと言う名前のVARCHAR2型の配列を作る。添え字は数値。 > TYPE array IS TABLE OF VARCHAR2(10) INDEX BY VARCHAR2(5); arrayと言う名前のVARCHAR2型の配列を作る。添え字は文字列。 ***初期化 > array_List array; > array_List(1) := 'aaa'; > array_List(9) := 'bbb'; > array_List(300) := 'ccc'; 添え字を文字列として定義するとこういうことが出来る。 > array_List('ほげ') := 'hoge'; > array_List('ふー') := 'foo'; > array_List('bar') := 'bar'; **ネステッド・テーブル -添え字は 1 ~ 2^31 まで使用可能。 ***宣言 > TYPE array IS TABLE OF VARCHAR2(10) NOT NULL; -NULLを許可しないVARCHAR2の配列。 -NOT NULLは省略可能。(NULLを許可する場合) ***初期化 > array_List array := array('aaa', 'bbb', 'ccc'); --初期化付宣言 > null_List array; --宣言のみ > null_List := array(); --初期化 > null_List.EXTEND(100); --添え字100を作成 > null_List(100); := 'aaa'; --代入 ***拡張 > array.EXTEND(100); > array(100) := 'aaa'; arrayの要素100を拡張し、aaaを代入する。(未拡張領域に対しての代入はエラー) **VARRAY 可変長配列 ***宣言 > TYPE array IS VARRAY(100) OF VARCHAR2(10) NOT NULL; 要素が最大100あるVARCHAR2の配列。NULLを許可しない。 ***初期化、拡張 > array_List array := array('aaa', 'bbb', 'ccc'); --初期化付宣言 > null_List array; > null_List.EXTEND(50); --配列を +50 初期化。 **ネストされたコレクション > CREATE TYPE hoge IS TABLE OF VARCHAR2(100); > CREATE TYPE moge IS TABLE OF hoge; 例2: > DECLARE > TYPE hoge IS RECORD( > id INTEGER, > name VARCHAR2(200) > ); > TYPE array IS TABLE OF hoge; > > list array; --hoge型のレコードを持つTABLE。 > BEGIN > list := array(); --初期化 > list.EXTEND(1); --1レコード目。拡張し作成。 > list(1).id := 1; --1レコード目のid項目に1を代入。 > list(1).name := 'hoge'; --1レコード目のname項目にhogeを代入。 > list.EXTEND(2); > list(2).id := 2; > list(2).name := 'moge'; > --以下同文... > > FOR i IN 1 .. 2 LOOP > DBMS_OUTPUT.PUT_LINE('id:'||list(i).id||' name:'||list(i).name); > END LOOP; > END; > / **参考URL [[Trick and Treat Oracle More Cool ! - PLSQL コレクション型>http://biz.rivus.jp/plsql_collection.html]] ---- *なんかあればどうぞ #comment(vsize=2,nsize=20,size=40)

表示オプション

横に並べて表示:
変化行の前後のみ表示:
記事メニュー
人気記事ランキング
目安箱バナー