Boa tarde,
Existe uma carga de dados que le todos os registros de uma tabela e transfere para outra.
Hoje esta assim: for x in (select..) loop
Porém esta demorando 2 horas para excutar.
Pensei em usar o forall. É a melhor maneira?
No for all estou com um problema que não consigo chamar a procedure que faz os insert.
CREATE OR REPLACE PROCEDURE TESTE_FORALL IS
TYPE TOBJECTTABLE IS TABLE OF TABELA%ROWTYPE;
T TOBJECTTABLE;
BEGIN
SELECT * BULK COLLECT INTO T FROM TABELA;
FORALL X IN T.FIRST..T.LAST
TESTE_INSERT(T(X).COLUNA1, T(X).COLUNA2, T(X).COLUNA3); -- ISSO É UMA PROCEDURE QUE FAZ O INSERT
END;
/
At
Cesar Moraes