Complicar sempre que pode

Este forum é dedicado a códigos errados que se encontram por aí, ou seja, coisas que não se deve fazer de jeito nenhum! Não coloque neste forum dúvidas! (apenas situações bizarras do nosso dia a dia :-)
Responder
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Aí vai o código pra comitar de 500 em 500 linhas:

Selecionar tudo

LOOP
  .. códigos ..
  .. códigos ..

  IF MOD(j, 500) = 0
  THEN
       COMMIT;
  END IF;

  j := j + 1;

END LOOP;
Não seria mais rápido colocar apenas um IF sem a função MOD ?

Selecionar tudo

IF j = 500 
THEN
  j:=0; 
  COMMIT;
END IF;
no lugar de

Selecionar tudo

IF MOD(j, 500) = 0 
THEN 
  COMMIT
END IF;
Assim não precisa utilizar a função MOD 500 vezes.
:-o
victorhugomuniz
Moderador
Moderador
Mensagens: 1396
Registrado em: Sex, 01 Fev 2008 2:06 pm
Localização: Rio de Janeiro - RJ
Contato:
:D

realmente..

.. é uma pérola

rsrsrs
diegolenhardt
Moderador
Moderador
Mensagens: 1177
Registrado em: Qui, 15 Out 2009 10:28 am
Localização: Recife

Que beleza, auihauihiau
RodrigoValentim
Moderador
Moderador
Mensagens: 367
Registrado em: Ter, 25 Mar 2008 3:41 pm
Localização: Salvador - BA
Rodrigo Valentim
Analista de Sistemas
Oracle Developer

Campanha: Faça uma pesquisa antes de perguntar!!!

isso é muito normal! já vi utilizar isso diversas vezes...
Maverick
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 6
Registrado em: Qua, 22 Fev 2006 3:17 pm
Localização: RJ
Espero que ajude

Abraços,

Maverick

Apesar de atrasado no comentário, faz sentido.

Se por algum motivo o contador J não puder ser zerado, ele não pode commitar quando J for igual a 500.

O Commit ocorrerá a cada 500 registros, múltiplos de 500

Selecionar tudo

MOD(2000,500) = 0
Por outro lado, ele poderia ter declarado um contador auxiliar.
diegolenhardt
Moderador
Moderador
Mensagens: 1177
Registrado em: Qui, 15 Out 2009 10:28 am
Localização: Recife

só fazer como disse dr_gori um if = 500

e no final de todo o procedimento outro if

Selecionar tudo

if j > 0 then
  commit;
pra comitar o que faltou...
Responder
  • Informação
  • Quem está online

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