USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Update PL/SQL em tabela com muitos dados?
vilmarbr
Pontos: 2843
SAO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 17/01/2012 11:44 hs         
Update PL/SQL em tabela com muitos dados?
Como eu faria, se possível, sem usar cursor, uma atualização(update) pegando de uma tabela X jogando numa tabela Y onde X.codigo = Y.codigo , sendo estarei mexendo com algo em torno de  600 milhões de registros, atualizando, por exemplo, de 1000

em 1000, que foi o que a analista me pediu para fazer ...
Alguma ideia, algum exemplo?
Grato.

http://www.vilmarbro.com.br
   
vilmarbr
Pontos: 2843
SAO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 17/01/2012 16:52 hs         
agora não sei por que esta tranqueira aqui dá pau toda hora qdo mando executar...
ja cacei no google e a sintaxe é esta do update from ....

UPDATE TABELA1

SET TABELA1.NOME = TABELA2.NOME

FROM TABELA2

WHERE TABELA1.COD= TABELA2.COD

"
Erro na Linha de Comando:390 Coluna:67
Relatório de Erro:
Erro de SQL: ORA-00933: SQL command not properly ended
00933. 00000 -  "SQL command not properly ended"
*Cause:    
*Action:
"

http://www.vilmarbro.com.br
   
vilmarbr
Pontos: 2843
SAO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 18/01/2012 17:08 hs         
agora foi.. falta 2.a parte eheh


set serveroutput on
Declare
v_data date;

Begin
  V_Data := To_Date('01/06/2006', 'dd/mm/yyyy');

  Loop
    For H In 0..23 Loop
      Dbms_Output.Put_line(To_Char(V_Data, 'dd/mm/yyyy') || ' ' ||  H  || ':00 até ' || H || ':59');

      UPDATE tabela1 nf
      SET (COD_TMDR_CPF_CNPJ,IND_TMDR_CPF_CNPJ) =  (SELECT p.CPF_CNPJ_NF, p.IND_CPF_CNPJ_NF FROM tabela2 p WHERE p.PESS_NF = nf.PESS_TMDR_NF)
      WHERE nf.PESS_TMDR_NF IS NOT NULL
      AND nf.dt_emis_NF > to_date(v_data || ' ' || H || ':00:00', 'dd/mm/yyyy hh24:mi:ss') and dt_emis_NF <= to_date(v_data || ' ' || H || ':59:59', 'dd/mm/yyyy hh24:mi:ss');


      --Commit;

    End Loop;

    V_Data := V_Data + 1;

    Exit when v_data > to_date('31/12/2011', 'dd/mm/yyyy') ;    

  End Loop;
End;

http://www.vilmarbro.com.br
   
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página