Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal tudo bom????
Bom tenho uma dúvida eu preciso atualizar um campo tabela x com referencia ao campo da tabela y. Meu problema é o seguinte está demorando muito pra finalizar a procedure. Eu estou pegando os resultados da tabela y e jogando para um cursor do tipo ROWTYPE e depois estou colocando o UPDATE dentro de um LOOP para atualizar a tabela x, não sei se essa e a melhor forma de fazer, as segestões q vcs tiverem eu agradeco.
##### INFO TABELAS #####
TABELA1 (17598 Linhas)
Tabela2 (17045 Linhas)
##### PROCEDURE #####
create or replace
PROCEDURE "TESTE" AS
BEGIN
DECLARE
COUNTER NUMBER := 0;
CURSOR c_sb IS
SELECT B1_COD, B1_CUTMAN
FROM TABELA1
WHERE B1_TIPO IN ('01','02','03','04');
atualiza c_sb%ROWTYPE;
BEGIN
OPEN c_sb;
LOOP
FETCH c_sb INTO atualiza;
EXIT WHEN c_sb%NOTFOUND;
COUNTER := COUNTER + 1;
UPDATE TABELA2 TB2 SET
TB2.B9_CUTMAN = atualiza.B1_CUTMAN
WHERE TB2.B9_DATA = '20080131'
AND TB2.B9_COD = atualiza.B1_COD;
IF COUNTER > 1000 THEN
COUNTER := 0;
COMMIT;
END IF;
END LOOP;
CLOSE c_sb;
END;
COMMIT;
END TESTE;Carregando comentários...