Creating an Associative Array in Oracle PL/SQL from a table using %ROWTYPE
This example creates an in memory table using the row type from another table then populates the tbale in batches of 1000. This allows operations to be done on the data before inserting it into a third table.
procedure my_proc
is
TYPE tt_table IS TABLE OF mytable%ROWTYPE;
l_id NUMBER(38,0) := -1;
l_tab tt_table;
cursor c_data is
select * from mytable;
begin
open c_data;
loop
fetch c_data
bulk collect into l_tab limit 1000;
for i in 1 .. l_tab.count
loop
insert into other_tab (COL1)
VALUES (l_tab(i).MYCOL1);
-- Do other conditional processing here (otherwise we could just insert directly from a query)
end loop;
exit when l_tab.count = 0;
end loop;
close c_data;
end;
Also see the example of using Associative Arrays at - http://notastrophe.blogspot.com/2013/03/oracle-plsql-associative-arrays.html
No comments:
Post a Comment