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>
Related examples in the same category