vilmarbr
|
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
|
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
|
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
|
|
|
|