Pular para o conteúdo

Fóruns SQL e PL/SQL exception and rollback exception and rollback

#89438
fsitja
Participante

    Vai depender muito de qual erro aconteceu e do impacto dele. O rollback coloca o BD de volta ao último estado consistente conhecido, como estava no início da transação, ou seja, de volta ao último rollback ou commit realizado.
    Como o pessoal já falou, se deu erro que afete a correção e consistência dos seus dados: rollback.
    Não deu erro: commit.

    A questão mais complicada é quando dar o commit, e vai depender da atomicidade de suas operações no nível do negócio, de forma a não ficar com operações pela metade, incompletas ou inconsistentes.

    Lembre-se que commit e rollback não têm volta.

    Como boa prática, lembre-se de quando der um “when others” e fizer seu rollback, é recomendado que propague o erro com um “raise;” ou um “raise_application_error” com exceptions customizados. Desaparecer com os erros no exception pode causar muitas dores de cabeça no futuro.

    Recomendo verificar a documentação da Oracle sobre exceptions e controle de transação, que é excelente.

    Controle de Transações: http://download.oracle.com/docs/cd/B283 … #CNCPT1118
    Exceptions: http://download.oracle.com/docs/cd/B283 … LNPLS00702