Ви можете використовувати 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;
Або ТАБЛИЦЯ для безмежного масиву:
...
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;
Перший показник - 1, а не 0.