レコード(TYPE)の配列を作成するサンプルです。
サンプル
例)TYPEの配列を作成して、内容を出力するプロシージャ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
CREATE OR REPLACE PROCEDURE p_sample IS --①TYPEを生成 TYPE rec1 IS RECORD( col1 NUMBER(3,0) ,col2 NUMBER(3,0) ); --②TYPEの配列を生成 TYPE tbl1 IS TABLE OF rec1 INDEX BY BINARY_INTEGER; --③を宣言する a tbl1; BEGIN --④TYPEの配列に値を設定する FOR i IN 1..5 LOOP a(i).col1 := i*2; a(i).col2 := i*3; END LOOP; --⑤TYPEの配列から値を取り出して表示する FOR i IN 1..a.COUNT LOOP DBMS_OUTPUT.PUT_LINE(a(i).col1 || '-' || a(i).col2); END LOOP; END; |
- 実行例
- SQL> set serveroutput on SQL> exec p_sample 2-3 4-6 6-9 8-12 10-15 PL/SQLプロシージャは正常に完了しました。 SQL>
実行前に「set serveroutput on」を実行しておく必要があります。
解説
- 配列の未使用の要素には、値を突っ込めば初期化されます。
- 値をセットした要素しか初期化されません。
(配列生成直後にインデックス番号3に値を入れた場合、3番は初期化されますが0~2番は初期化されません。) - TYPE内のどれか一つに値をセットすれば、そのTYPE要素は全て初期化されます。