固定サイズの配列にはVARRAYを使用できます:
declare
type array_t is varray(3) of varchar2(10);
array array_t := array_t('Matt', 'Joanne', 'Robert');
begin
for i in 1..array.count loop
dbms_output.put_line(array(i));
end loop;
end;
または、無制限の配列の場合はTABLE:
...
type array_t is table of varchar2(10);
...
ここでの「テーブル」という言葉は、紛らわしいことに、データベーステーブルとは何の関係もありません。どちらの方法でも、メモリ内配列が作成されます。
これらのいずれかを使用する場合は、要素を追加する前に、コレクションの初期化と拡張の両方を行う必要があります。
declare
type array_t is varray(3) of varchar2(10);
array array_t := array_t(); -- Initialise it
begin
for i in 1..3 loop
array.extend(); -- Extend it
array(i) := 'x';
end loop;
end;
最初のインデックスは0ではなく1です。