2015年11月8日日曜日

PLSQL コレクション(配列) ~結合配列の操作~

今回は結合配列を操作するメソッドについてです。

結合配列を操作するメソッドの一覧です。
メソッド名説明
exists指定した添字の要素が存在する場合、trueを返す。
count変数に存在する要素の数を返す。
firs最初の添字を返す。
last最後の添字を返す。
prior指定した添字の一つ前の添字を返す。
※前の添字とは引数に指定した添字の次に小さい添字。
next指定した添字の一つ次の添字を返す。
※次の添字とは引数に指定した添字の次に大きい添字。
delete配列からすべての要素を削除する。
配列から指定の要素を削除する。

DECLARE
    TYPE ary_type IS TABLE OF VARCHAR2(1) INDEX BY VARCHAR2(1);
    ary ary_type;
    
    result BOOLEAN;
BEGIN
    --テストデータ作成
    ary('A') := 'a';
    ary('B') := 'b';
    ary('C') := 'c';
    ary('E') := 'e';
    ary('D') := 'd';
    
    --指定した添字の要素が存在するかを返す
    --出力:true
    IF ( ary.exists('D') ) THEN
      SYS.DBMS_OUTPUT.PUT_LINE('true');
    ELSE
      SYS.DBMS_OUTPUT.PUT_LINE('false');
    END IF;
    
    --配列の要素数を返す
    --出力:5
    SYS.DBMS_OUTPUT.PUT_LINE( ary.count );
    
    --配列の最大の要素を返す
    --出力:A
    SYS.DBMS_OUTPUT.PUT_LINE( ary.first );
    
    --配列の最小の要素を返す
    --出力:E   
    SYS.DBMS_OUTPUT.PUT_LINE( ary.last );
    
    --指定した添字の前の添字を返す
    --出力:A   
    SYS.DBMS_OUTPUT.PUT_LINE( ary.prior('B') );
    
    --指定した添字の次の添字を返す
    --出力:E   
    SYS.DBMS_OUTPUT.PUT_LINE( ary.next('D') );
    
    --指定した添字を削除する
    --出力:4
    ary.delete('B');
    SYS.DBMS_OUTPUT.PUT_LINE( ary.count );
    
    --指定した添字を削除する
    --出力:0
    ary.delete;
    SYS.DBMS_OUTPUT.PUT_LINE( ary.count );
    
END;

0 件のコメント: