| Oracle® Database PL/SQL Language Reference 11g Release 2 (11.2) Part Number E17126-03 |
|
|
View PDF |
The AUTONOMOUS_TRANSACTION pragma marks a routine as autonomous; that is, independent of the main transaction.
The AUTONOMOUS_TRANSACTION pragma can appear only in the declare_section of a routine.
In this context, a routine is one of these:
Schema-level (not nested) anonymous PL/SQL block
Standalone, package, or nested subprogram
Method of an ADT
Noncompound trigger
When an autonomous routine is invoked, the main transaction is suspended. The autonomous transaction is fully independent of the main transaction: they share no locks, resources, or commit dependencies. The autonomous transaction does not affect the main transaction.
Changes made by an autonomous transaction become visible to other transactions when the autonomous transaction commits. They become visible to the main transaction when it resumes only if its isolation level is READ COMMITTED (the default).
Topics:
Syntax
autonomous_transaction_pragma ::=
Examples
Example 6-44, "Declaring an Autonomous Function in a Package"
Example 6-45, "Declaring an Autonomous Standalone Procedure"
Example 6-48, "Autonomous Trigger Using Native Dynamic SQL for DDL"
Related Topics
In this chapter:
In other chapters: