
Uma transação autonoma (Autonomous Transactions) é startada por uma transação principal para operar de maneira autonoma ou se ocorrer alguma falha a transação não ser afetada.
O uso favorito desta FEATURE e em eventos de LOG ou quando tiver a necessidade de não se impactar a transação, AUTONOMOUS TRANSACTION e a solução perfeita para se criar uma transação autonoma, use o PRAGMA AUTONOMOUS_TRANSACTION. Este comando é colocado na seção de DECLARE do bloco.
O uso favorito desta FEATURE e em eventos de LOG ou quando tiver a necessidade de não se impactar a transação, AUTONOMOUS TRANSACTION e a solução perfeita para se criar uma transação autonoma, use o PRAGMA AUTONOMOUS_TRANSACTION. Este comando é colocado na seção de DECLARE do bloco.
Oracle : http://www.oracle.com.br/
Ex:
Create or replace PROC_EXEMPLO IS
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
<<>>;
END;
Exemplo Prático:
1) Transação 1 : insert into movimentacao
2) Executa Autonomous Transaction (pode ser procedure ou função)
3) transação 2 : insert into LOG (Procedure com AUTONOMOUS)
4) commit na procedure, volta para transação 1
5) executa um roolback;
Neste caso as informações da transação 1 são desfeitas e
as informações da transação 2 são mantidas.
Lembre-se
Após finalizar uma transação autonoma sempre execute um COMMIT ou
roolback antes de voltar a transação anterior.
Create or replace PROC_EXEMPLO IS
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
<<>>;
END;
Exemplo Prático:
1) Transação 1 : insert into movimentacao
2) Executa Autonomous Transaction (pode ser procedure ou função)
3) transação 2 : insert into LOG (Procedure com AUTONOMOUS)
4) commit na procedure, volta para transação 1
5) executa um roolback;
Neste caso as informações da transação 1 são desfeitas e
as informações da transação 2 são mantidas.
Lembre-se
Após finalizar uma transação autonoma sempre execute um COMMIT ou
roolback antes de voltar a transação anterior.
Nenhum comentário:
Postar um comentário