@634

Oracle PL/SQL - コレクション

Advertisement

VARRAY

配列。
最大サイズを指定する。
個々の要素を削除することができない。
順序を保つ
作成した時点では、コレクション=NULLなので、コンストラクタを使用しての初期化もしくはコレクションの代入が必要。

書式
type 名前 is {varray | varying array} (size)
    of データ型 [not null];

初期化1
declare
    type num_list is varray(5) of number(3);
    age num_list;
begin
    age := num_list('10', '20', '30', '40', '50');
end;

初期化2
declare
    type num_list is varray(5) of number(3);
    age num_list := num_list('10', '20', '30', '40', '50');;
begin
end;

値の設定:添え字(インデックス)でアクセスする。
age(2) := 21;

NESTED TABLE

最大サイズがない。
個々の要素を削除することができる。
順序を保たない。
書式
TYPE type_name IS TABLE OF element_type [NOT NULL];
作成した時点では、コレクション=NULLなので、コンストラクタを使用しての初期化もしくはコレクションの代入が必要。
初期化1
declare
    type num_list is table(5) of number(3);
    age num_list;
begin
    age := num_list('10', '20', '30', '40', '50');
end;

初期化2
declare
    type num_list is table(5) of number(3);
    age num_list := num_list('10', '20', '30', '40', '50');
begin
    age(2) := 21;
end;

値の設定:添え字(インデックス)でアクセスする。
age(2) := 21;

コレクションメソッド

collection 共通のメソッド。
コレクション.exists(n);コレクションの指定した添え字にデータが存在すればtrue、
存在しなければfalse、
範囲外を指定した場合、false
コレクション.count;要素数を取得する。
コレクション.limit;最大サイズを返す。
コレクション.first;最初の索引番号を返す
コレクション.last;最後の索引番号を返す
コレクション.prior(n);コレクション(n)の一つ前の索引番号を返す。一つ前がNULLの場合、NULLを返す。
コレクション.next;コレクション(n)の一つ後の索引番号を返す。一つ後がNULLの場合、NULLを返す。
コレクション.extend;コレクションに要素をひとつ追加する。
コレクション.extend(n);コレクションに要素を n 個追加する。
コレクション.extend(n, i);コレクション(i)のコピーを n 個追加する。
コレクション.trimコレクションから要素をひとつ削除する。
コレクション.trim(n)コレクションから要素を n 個削除する。
コレクション.deleteコレクションを削除する。
コレクション.delete(n)コレクションの n 番目の要素を削除する。
コレクション.delete(n, i)コレクションの n 〜 i 番目の要素を削除する。

Advertisement

ショートカット

634
634ブログ
このカテゴリのトップページに戻る
Incubator(Pukiwiki)
634ラボ
   UIコレクションギャラリー
   ZO-3ジェネレーター

サイト検索


Y!ログール