Aprenda PL/SQL

Lendo e deletando a mesma tabela

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
  

Mensagemem Qua, 25 Jun 2014 3:01 pm

Boa tarde senhores,

como eu faço para ler e deletar uma mesma tabela commitando a cada 1000? fiz o bloco abaixo mas demora uma eternidade, ta demorando 65 minutos para cada um registro e a tabela tem 358.000 registro. alguém pode me ajudar?

Código: Selecionar todos
SET SERVEROUTPUT ON
declare

  cursor c_1 is
 
select CTRT_REF_NR 
FROM TB1
WHERE BLK_CD = 'USA'
AND CTRT_REF_NR NOT IN (select ctrt_ref_nr from tb_ctrt_tmp);
   
   V_CONT NUMBER := 0;
begin
   for c_1_rec in c_1 loop
         
     DELETE
     FROM TB1
     WHERE BLK_CD = 'USA'
       AND CTRT_REF_NR = C_1_REC.CTRT_REF_NR;

     
     V_CONT := V_CONT + 1;
     IF V_CONT = 1000 THEN
        COMMIT;
        V_CONT := 0;
     END IF;
   
   end loop;
   COMMIT;
   
end;
cleberz

Mensagemem Qui, 26 Jun 2014 3:51 pm

Aqui rolou um tópico semelhante ao seu. Veja se ajuda!
viewtopic.php?f=2&t=9196
dr_gori
Localização: Porto Alegre - RS

Thomas F. G
https://www.patreon.com/glufke


  • Veja também
    Respostas
    ExibiÇões
    Última mensagem


Voltar para PL/SQL

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 10 visitantes