Mega Code Archive

 
Categories / Oracle PLSQL / PL SQL
 

Use for loop to insert value to table collection and then use table collection in another insert statement

SQL> CREATE TABLE MyTable (   2    num_col    NUMBER,   3    char_col   VARCHAR2(60)   4    ); Table created. SQL> SQL> SQL> DECLARE   2    TYPE t_Numbers IS TABLE OF MyTable.num_col%TYPE   3      INDEX BY BINARY_INTEGER;   4    TYPE t_Chars IS TABLE OF MyTable.char_col%TYPE   5      INDEX BY BINARY_INTEGER;   6    v_Numbers t_Numbers;   7    v_Chars t_Chars;   8  BEGIN   9    FOR v_Count IN 1..50 LOOP  10      v_Numbers(v_Count) := v_Count;  11      v_Chars(v_Count) := 'Row number ' || v_Count;  12    END LOOP;  13  14    FORALL v_Count IN 1..50  15      INSERT INTO MyTable VALUES  16        (v_Numbers(v_Count), v_Chars(v_Count));  17  END;  18  / PL/SQL procedure successfully completed. SQL> SQL> drop table MyTable; Table dropped. SQL>