- An autonomous transaction is an independent transaction that is initiated by another transaction (the parent transaction).
- An autonomous transaction can modify data and commit or rollback independent of the state of the parent transaction.
- The autonomous transaction must commit or roll back before the autonomous transaction is ended and the parent transaction continues.
- An autonomous transactions is available from Oracle 8i.
- An autonomous transaction is defined in the declaration of a pl/sql block. This can be an anonymous block, function, procedure, object method or trigger.
- This is done by adding the statement 'PRAGMA AUTONOMOUS_TRANSACTION;' anywhere in the declaration block.
- Autonomous transactions can be used for logging in the database independent of the rollback/commit of the parent transaction.
CREATE OR REPLACE PROCEDURE test
IS
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
insert ....
commit;
END;