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