Transaction Management
The Oracle RDBMS provides a transaction model based on a unit of work. The PL/SQL language supports most, but not all, of the database model for transactions.[3] A transaction begins implicitly with the start of a session or with the first SQL statement issued since the last COMMIT or ROLLBACK (essentially, with the first change to data). A transaction ends with either a COMMIT or ROLLBACK.
Transactions are independent of PL/SQL blocks. Transactions can span multiple PL/SQL blocks, or there can be multiple transactions in a single PL/SQL block (with the help of autonomous transactions, described later). The PL/SQL-supported transaction statements, described next, are COMMIT, ROLLBACK, SAVEPOINT, SET TRANSACTION, and LOCK TABLE.
[3] You cannot, for example, specify ROLLBACK FORCE.