Boa tarde, Ricardo!

Veja se isto ajuda: É um bloco PL/SQL que, a cada 500 registros
atualizados, efetua um COMMIT, para não comprometer a área de Rollback...
Obs: Efetuar commit a cada 500 registros é só um exemplo... Este valor pode
ser maior ou menor, de acordo com a área de Rollback...


DECLARE
  vQtLinhas NUMBER(3) := 0;

BEGIN

  FOR Reg IN (SELECT CAMPO_PK ID_TABELA -- Campo chave da tabela
              FROM   TABELA)
  LOOP

    UPDATE TABELA
    SET    CAMPO_CHAR = ''
    WHERE  CAMPO_PK   = Reg.ID_TABELA;

    vQtLinhas := vQtLinhas + 1; -- Registra a Qtde de Linhas atualizadas

    IF vQtLinhas = 500 THEN -- Quando o total de linhas atualizadas atingir
500, efetua um COMMIT;
      COMMIT;
      vQtLinhas := 0;
    END IF;

  END LOOP;

  COMMIT; -- Este COMMIT é importante para atualizar o último bloco de
linhas que não chegou a 500 (Ex: As últimas 387 linhas)

END;



Em 17 de outubro de 2017 11:34, Ricardo Sá ricardo....@terra.com.br
[oracle_br] <oracle_br@yahoogrupos.com.br> escreveu:

>
>
> Bom dia, a todos.
>
>
>
> Solicito a gentileza se alguém pode me ajudar a resolver uma questão.
>
>
>
> Preciso realizar um UPDATE monstro em um tabela 11.500.000 (11,5 milhoes
> de linhas).
>
>
>
> O update é sobre uma coluna CHAR(1) com o valor “ “.
>
>
>
> Pensei em um bloco PLSQL, mas me falta neste momento criatividade para
> montar este bloco.
>
>
>
> Obs.: O banco é 11.2.0.4.0 (Enterprise Edition) sobre Oracle RAC com 2
> nós.... esta tabela tem 35 indices... (sei que é absurdo, mas é o ERP que
> foi construído desta forma).
>
>
>
> Alguem poderia, me ajudar nesta questão.
>
>
>
> Ricardo Sá
>
> (11) 98286-0048
>
> 
>



-- 
Atenciosamente,
*Gustavo Guedes de Sene*
  • [oracle_br] AJUDA - ... Ricardo Sá ricardo....@terra.com.br [oracle_br]
    • Re: [oracle_br]... Rodrigo Mufalani rodr...@mufalani.com.br [oracle_br]
      • RES: [oracl... Ricardo Sá ricardo....@terra.com.br [oracle_br]
        • Re: [or... Rodrigo Mufalani rodr...@mufalani.com.br [oracle_br]
    • Re: [oracle_br]... Gustavo Guedes guedescomputa...@gmail.com [oracle_br]
      • RES: [oracl... Ricardo Sá ricardo....@terra.com.br [oracle_br]
        • Re: RES... Sandro Gazoni sgaz...@yahoo.com.br [oracle_br]
        • Re: RES... jlchia...@yahoo.com.br [oracle_br]
          • RES... Ricardo Sá ricardo....@terra.com.br [oracle_br]
            • ... Junior Cesar juniorcesa...@yahoo.com.br [oracle_br]
            • ... jlchia...@yahoo.com.br [oracle_br]
              • ... Ricardo Sá ricardo....@terra.com.br [oracle_br]
                • ... jlchia...@yahoo.com.br [oracle_br]
                • ... Rodrigo Mufalani rodr...@mufalani.com.br [oracle_br]
                • ... jlchia...@yahoo.com.br [oracle_br]

Responder a