PL/SQL User's Guide and Reference
ROLLBACK Statement
Description
The ROLLBACK statement is the inverse of the COMMIT statement. It undoes some or all database changes made during the current transaction. For more information, see "Processing Transactions" .
Syntax
rollback_statement ::=
ROLLBACK [WORK] [TO [SAVEPOINT] savepoint_name];
Keyword and Parameter Description
ROLLBACK
When a parameterless ROLLBACK statement is executed, all database changes made during the current transaction are undone.
WORK
This keyword is optional and has no effect except to improve readability.
ROLLBACK TO
This statement undoes all database changes (and releases all locks acquired) since the savepoint identified by savepoint_name was marked.
SAVEPOINT
This keyword is optional and has no effect except to improve readability.
savepoint_name
This is an undeclared identifier, which marks the current point in the processing of a transaction. For naming conventions, see "Identifiers" .
Usage Notes
All savepoints marked after the savepoint to which you roll back are erased. However, the savepoint to which you roll back is not erased. For example, if you mark savepoints A, B, C, and D in that order, then roll back to savepoint B, only savepoints C and D are erased.
An implicit savepoint is marked before executing an INSERT, UPDATE, or DELETE statement. If the statement fails, a rollback to the implicit savepoint is done. Normally, just the failed SQL statement is rolled back, not the whole transaction. However, if the statement raises an unhandled exception, the host environment determines what is rolled back. For more information, see "Unhandled Exceptions" .
Related Topics
COMMIT Statement, SAVEPOINT Statement