novembro 7, 2014 às 3:37 pm
#107098
Participante
Resolvi meu problema usando o seguinte bloco:
BEGIN
EXECUTE IMMEDIATE
'DECLARE
CURSOR C_'||P_NOMTABELA||' IS
SELECT * FROM '||P_NOMTABELA||'@DBL_BANCO;
TYPE FETCH_ARRAY IS TABLE OF C_'||P_NOMTABELA||'%ROWTYPE;
S_ARRAY FETCH_ARRAY;
BEGIN
OPEN C_'||P_NOMTABELA||';
LOOP
FETCH C_'||P_NOMTABELA||' BULK COLLECT INTO S_ARRAY LIMIT 10000;
FORALL I IN 1..S_ARRAY.COUNT
INSERT INTO '||P_NOMTABELA||' VALUES S_ARRAY(I);
EXIT WHEN C_'||P_NOMTABELA||'%NOTFOUND;
END LOOP;
CLOSE C_'||P_NOMTABELA||';
END; ';
COMMIT WORK;
RETURN TRUE;
END;
Não era exatamente o que pretendia usar.
Fico muito feliz pela dica em relação ao uso do pacote DBMS_SQL, acabei pegando um novo conceito de uso desse pacote por intermédio da sua dica.
Grato pela atenção @RMAN 🙂