Dessa maneira sem usar o cursor o valor da sequence vai ser o mesmo para o 
determinado intervalo de data, ok? Ou esse script é para eu colocar no meu LOOP?
  ----- Original Message ----- 
  From: Marcio Portes 
  To: oracle_br@yahoogrupos.com.br 
  Sent: Wednesday, July 12, 2006 1:17 AM
  Subject: Re: [oracle_br] Update na tabela com mais de 4 milhões de 
registros...


  Márcio:

  Tente ai:

     UPDATE FT01_NOTA_SAI
           SET ID_NF_SAIDA = FT01_NF_SEQ_ID.NEXTVAL
    WHERE DT_EMIS BETWEEN to_date('01/01/2000', 'dd/mm/yyyy') AND
  to_date('31/12/2000', 'dd/mm/yyyyy'
  /
  commit;



  On 7/11/06, Márcio Ricardo <[EMAIL PROTECTED]> wrote:
  >
  > Boa tarde grupo,
  >
  >   Estou fazendo um update com mais de 4 milhões de registros, na verdade
  > não consegui fazer para atualizar todos os registros de uma vez, depois de
  > algum tempo me retorna o erro ORA-04031 SHARED MEMORY. Se eu não estiver
  > errado, esse erro acontece porque tenho muitas linhas para atualizar e como
  > não dou o commit a memoria sobrecarrega, correto?
  >
  > Pergunto. Tem algum parametro que eu possa setar para aumentar essa
  > memória e atualizar minha tabela de uma vez só?
  >
  > Ou no script que fiz posso dar o commit dentro do loop? Li no livro
  > "Programação PL/SQL Oracle9i" que a oracle não recomenda, mas se quero mesmo
  > dar o commit basta colocar a primary key da tabela no update.
  >
  > segue o script abaixo:
  >
  > DECLARE
  > V_ID FT01_NOTA_SAI.ID_NF_SAIDA%TYPE;
  >
  > CURSOR C_FT01_NF_ID IS
  > SELECT UN, NF, SERIE
  > FROM FT01_NOTA_SAI
  > WHERE DT_EMIS BETWEEN '01/01/2000' AND '31/12/2000';
  >
  > BEGIN
  >   FOR V_CURSOR IN C_FT01_NF_ID LOOP
  >    SELECT FT01_NF_SEQ_ID.NEXTVAL
  >    INTO V_ID
  >    FROM DUAL;
  >
  >    UPDATE FT01_NOTA_SAI
  >     SET ID_NF_SAIDA = V_ID
  >    WHERE V_CURSOR.UN    = UN
  >    AND   V_CURSOR.NF    = NF
  >    AND   V_CURSOR.SERIE = SERIE
  >    AND   ID_NF_SAIDA IS NULL;
  >   END LOOP;
  > END;
  >
  > Valew.
  >      Márcio Ricardo Alves da Silva
  >       Programador Pleno
  >       Av. Eng. Luis Carlos Berrini, 801 - 10º andar
  >       Brooklin Novo - 04571-010 - São Paulo - SP
  >       Fone: (55)(11)5501-8300
  >       Fax:(55)(11)5501-8302
  >       www.confignet.com.br
  >
  >
  > [As partes desta mensagem que não continham texto foram removidas]
  >
  > 
  >



  -- 
  Marcio Portes
  Material Tecnico em Portugues - http://mportes.blogspot.com
  Practical Learning Oracle     -
  http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


  [As partes desta mensagem que não continham texto foram removidas]

   

[As partes desta mensagem que não continham texto foram removidas]



--------------------------------------------------------------------------------------------------------------------------
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--------------------------------------------------------------------------------------------------------------------------__________________________________________________________________

Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine 
__________________________________________________________________
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o 
link do mesmo para evitar trafego(pedidos) desnecessário. 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a