Anda dapat menggunakan VARRAY untuk array ukuran tetap:
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;
Atau TABEL untuk larik tak terbatas:
...
type array_t is table of varchar2(10);
...
Kata "tabel" di sini tidak ada hubungannya dengan tabel database, membingungkan. Kedua metode membuat array dalam memori.
Dengan salah satu dari ini, Anda perlu menginisialisasi dan memperluas koleksi sebelum menambahkan elemen:
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;
Indeks pertama adalah 1 bukan 0.