คุณสามารถใช้ 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);
...
คำว่า "table" ที่นี่ไม่มีส่วนเกี่ยวข้องกับตารางฐานข้อมูลอย่างสับสน ทั้งสองวิธีสร้างอาร์เรย์ในหน่วยความจำ
ด้วยสิ่งเหล่านี้คุณต้องเริ่มต้นและขยายการรวบรวมก่อนที่จะเพิ่มองค์ประกอบ:
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