Bạn có thể sử dụng VARRAY cho một mảng có kích thước cố định:
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;
Hoặc TABLE cho một mảng không bị ràng buộc:
...
type array_t is table of varchar2(10);
...
Từ "bảng" ở đây không liên quan gì đến các bảng cơ sở dữ liệu, thật khó hiểu. Cả hai phương pháp đều tạo mảng trong bộ nhớ.
Với một trong hai cách này, bạn cần khởi tạo và mở rộng bộ sưu tập trước khi thêm các phần tử:
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;
Chỉ số đầu tiên là 1 không phải 0.