コレクション型。
VARRAYと違い、配列のサイズを指定しなくてよい。
また、deleteなどメソッドを実装している。
SET SERVEROUTPUT ON DECLARE --NESTED TABLE型の定義 TYPE tMyList IS TABLE OF VARCHAR2(20) INDEX BY VARCHAR2(3); --上記の型を利用した変数の宣言 wkList tMyList; begin --変数に値をセット wkList('adr') := 'moji'; wkList('nam') := 'harada'; wkList('tel') := '090-xxxx-xxxx'; --変数の値を取り出し DBMS_OUTPUT.put_line(wkList('nam')); --変数に格納されている要素数を取得 DBMS_OUTPUT.put_line(wkList.count); --指定した要素を削除 wkList.delete('nam'); --指定した要素が存在するかチェック IF wkList.exists('nam') = false THEN DBMS_OUTPUT.put_line('要素が存在しません。'); ELSE DBMS_OUTPUT.put_line(wkList('nam')); END IF; END; /
型の定義について
TYPE tMyList IS TABLE OF VARCHAR2(20) INDEX BY VARCHAR2(3);
tMyList・・・型の名前。任意に設定する。
TABLE OF VARCHAR2(20)・・・格納する値の型、サイズの指定。
INDEX BY VARCHAR2(3)・・・要素(格納、取り出しに使用するキー)の型、サイズの指定。