嵌套一下,两种办法。
1。Index-Table
2. Index-by Table of Records
DECLARE
TYPE hrc_org_rec IS RECORD
(hrc_org_id NUMBER,
hrc_descr VARCHAR2(20),
org_short_name VARCHAR2(30));
TYPE hrc_org_tab IS TABLE OF hrc_org_rec INDEX BY BINARY_INTEGER;
v_example_tab hrc_org_tab;
CURSOR csr_hrc_org IS
SELECT hrc_org_seq.nextval hrc_org_id, h.hrc_descr, o.org_short_name
FROM org_tab o, hrc_tab h
WHERE o.hrc_code = h.hrc_code
AND h.hrc_code = 1;
i BINARY_INTEGER := 1;
BEGIN
FOR idx IN csr_hrc_org LOOP
v_example_tab(i).hrc_org_id := idx.hrc_org_id;
v_example_tab(i).hrc_descr := idx.hrc_descr;
v_example_tab(i).org_short_name := idx.org_short_name;
i := i + 1;
END LOOP;
dbms_output.put_line('An example output: ');
dbms_output.new_line;
FOR j IN 1..v_example_tab.COUNT LOOP
dbms_output.put_line(to_char(v_example_tab(j).hrc_org_id)||' '||
v_example_tab(j).hrc_descr||' '||
v_example_tab(j).org_short_name);
END LOOP;
END;
/
DECLARE
TYPE num_tab IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
v_example_tab num_tab;
BEGIN
FOR idx IN 1..10 LOOP
v_example_tab(idx) := (2**idx)+1;
END LOOP;
dbms_output.put_line('An example array:');
dbms_output.new_line;
FOR idx IN 1..10 LOOP
dbms_output.put_line(to_char(v_example_tab(idx)));
END LOOP;
END;
/