HI,
Ontem precisei criar uma trigger que de acordo com determinada condição iria provocar um raise_application_error e com isso abortar o processo de um sistema web adquirido aqui na empresa que trabalho.
Como a mensagem de erro desse raise não estava sendo exibida para o usuário, resolvi criar uma tabela de log para gravar um registro quando acontecesse esse erro. Percebi que mesmo desabilitando o comando raise, estava provocando erro na aplicação web, então deduzi que seria o COMMIT para salvar os dados dessa tabela de log.
Fui pesquisar como realizar esse commit sem afetar a transação da aplicação web. Foi aí que descobrir esse tal de Autonomous Transactions.
Autonomous Transactions
http://www.oracle-base.com/articles/misc/autonomous-transactions.php
Implementei uma procedure para gravar o registro e ficou na medida usando esse recurso de transação autônoma.
Para maiores informações tem esse site aqui.
http://pscoliveira.blogspot.com.br/2007/11/autonomous-transactions.html
Tem uma dica aqui de como criar a sua exceção
http://stackoverflow.com/questions/6020450/oracle-pl-sql-raise-user-defined-exception-with-custom-sqlerrm
Fiquem na Paz!!!!
PS: De acordo com contador do blog esse é o Post de número 200. Ebaaaaaaaaaa!!!!!!
Nenhum comentário:
Postar um comentário