Mega Code Archive

 
Categories / Oracle PLSQL / PL SQL
 

Fetch a bulk into a table structure

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> SET ECHO ON SQL> SET SERVEROUTPUT ON SQL> SQL> DECLARE   2      CURSOR all_depts IS   3          SELECT dept_id, dept_name FROM department ORDER BY dept_name;   4   5      TYPE dept_id IS TABLE OF department.dept_id%TYPE;   6      TYPE dept_name IS TABLE OF department.dept_name%TYPE;   7   8      dept_ids dept_id;   9      dept_names dept_name;  10      inx1 PLS_INTEGER;  11  BEGIN  12      OPEN all_depts;  13      FETCH all_depts BULK COLLECT INTO dept_ids, dept_names;  14      CLOSE all_depts;  15  16      FOR inx1 IN 1..dept_ids.count LOOP  17          DBMS_OUTPUT.PUT_LINE (dept_ids(inx1) || ' ' || dept_names(inx1));  18      END LOOP;  19  END;  20  / 10 ACCOUNTING 40 OPERATIONS 20 RESEARCH 30 SALES PL/SQL procedure successfully completed. SQL> SQL> SQL> drop table department; Table dropped. SQL> --