Reference elements in varray
SQL> SQL> create table department 2 ( dept_id number(2), 3 dept_name varchar2(14), 4 no_of_emps varchar2(13) 5 ) 6 / Table created. SQL> SQL> INSERT INTO department VALUES (10, 'ACCOUNTING', 'NEW YORK'); 1 row created. SQL> INSERT INTO department VALUES (20, 'RESEARCH', 'DALLAS'); 1 row created. SQL> INSERT INTO department VALUES (30, 'SALES', 'CHICAGO'); 1 row created. SQL> INSERT INTO department VALUES (40, 'OPERATIONS', 'BOSTON'); 1 row created. SQL> SQL> SQL> SET ECHO ON SQL> SET SERVEROUTPUT ON SQL> SQL> DECLARE 2 CURSOR all_depts IS SELECT * FROM department ORDER BY dept_name; 3 4 TYPE dept_array IS VARRAY(100) OF department%ROWTYPE; 5 6 depts dept_array; 7 inx1 PLS_INTEGER; 8 inx2 PLS_INTEGER; 9 BEGIN 10 inx1 := 0; 11 12 depts := dept_array (); 13 14 FOR dept IN all_depts LOOP 15 inx1 := inx1 + 1; 16 depts.extend(); 17 depts(inx1).dept_id := dept.dept_id; 18 depts(inx1).dept_name := dept.dept_name; 19 depts(inx1).no_of_emps := dept.no_of_emps; 20 END LOOP; 21 22 FOR inx2 IN 1..depts.count LOOP 23 DBMS_OUTPUT.PUT_LINE ( 24 depts(inx2).dept_id || 25 ' ' || depts(inx2).dept_name); 26 END LOOP; 27 END; 28 / 10 ACCOUNTING 40 OPERATIONS 20 RESEARCH 30 SALES PL/SQL procedure successfully completed. SQL> SQL> drop table department; Table dropped. SQL> SQL> --