www.oradev.com
  Database   Sql   Functions   Packages   Performance   Books   Oracle   Other   About   XML   ORA-messages
  Autonomous transactions

Database/Sql

Pl/sql tools
create table
Database scheduler
create tablespace
dba metrics
Table with sequenced numbers
Autonomous transaction
ORA-12537 error
Parse a String in pl/sql
Export with oracle datapump


  OraDev.com

Oracle autonomous transaction

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.

There isn't much involved in defining a PL/SQL block as an autonomous transaction. You simply include the following statement in your declaration section:
PRAGMA AUTONOMOUS_TRANSACTION;

Sample code:
PROCEDURE test_autonomous 
IS
  PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
   insert ....
   commit;
END test_autonomous;
Autonomous transactions can be used for logging in the database independent of the rollback/commit of the parent transaction.