Raise_application_error reverte?
Raise_application_error reverte?

Vídeo: Raise_application_error reverte?

Vídeo: Raise_application_error reverte?
Vídeo: Exceptions | Oracle PLSQL | VARAHI IT 2024, Maio
Anonim

Dentro de um gatilho RAISE_APPLICATION_ERROR faz não realizar um ROLLBACK , ele aborta a operação atual, ou seja, um único UPDATE / INSERT / DELETE. UMA Rollback reverte todas as alterações dentro da transação atual (ou até determinado Savepoint), isso é diferente.

Desta forma, o que é Raise_application_error?

Responda a raise_application_error é na verdade um procedimento definido pela Oracle que permite ao desenvolvedor levantar uma exceção e associar um número de erro e uma mensagem ao procedimento. Oracle fornece o raise_application_error procedimento para permitir que você aumente os números de erro personalizados em seus aplicativos.

Além disso, o que acontecerá quando uma instrução de rollback for executada dentro de um gatilho? Quando o desencadear dispara a transação atual ainda não foi concluída. Como COMMIT encerra uma transação permitindo-lhes em gatilhos seria quebrar a unidade de trabalho. Então mudanças executado em um gatilho são confirmados (ou revertidos) pela transação proprietária que emitiu o DML que disparou o desencadear.

Portanto, qual é a diferença entre Pragma Exception_init e Raise_application_error?

pragma exceção init transforma um erro Oracle em uma exceção nomeada. Se uma operação de banco de dados gerar um "recurso ocupado" ORA-00054, você terá que codificar:. Raise_application_error é usado para RAISE um erro - exception_init é usado para lidar com erros (eu acho que você poderia dizer que eles são opostos em um caminho).

O que é Sqlerrm?

SQLERRM Função. A função SQLERRM retorna a mensagem de erro associada ao seu argumento de número de erro. Se o argumento for omitido, ele retornará a mensagem de erro associada ao valor atual de SQLCODE. SQLERRM sem argumento é útil apenas em um manipulador de exceção.

Recomendado: