Busca

Google
 
BuscaPé, líder em comparação de preços na América Latina
BuscaPé, líder em comparação de preços na América Latina

terça-feira, 13 de novembro de 2007

Autonomous Transactions - Oracle


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.


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.

Nenhum comentário: