Mega Code Archive

 
Categories / Oracle PLSQL / PL SQL
 

How to do a bulk collect into an associative array

SQL> SET ECHO ON SQL> SET SERVEROUTPUT ON SIZE 1000000 SQL> SQL> CREATE TABLE myTable   2  (id                NUMBER              NOT NULL   3  ,CONSTRAINT id_pk  PRIMARY KEY (id)); Table created. SQL> SQL>  SQL> DECLARE   2       3    TYPE number_table IS TABLE OF myTable.id%TYPE INDEX BY BINARY_INTEGER;   4   5       6    number_list NUMBER_TABLE;   7   8  BEGIN   9  10      11    FOR i IN 1..10000 LOOP  12        13      number_list(i) := i;  14  15    END LOOP;  16  17      18    FORALL i IN 1..number_list.COUNT  19      INSERT INTO myTable VALUES (number_list(i));  20  21    COMMIT;  22  23  END;  24  / PL/SQL procedure successfully completed. SQL> SQL> drop table myTable; Table dropped. SQL>