Oracle8i SQL Reference
Release 2 (8.1.6)

A76989-01

Library

Product

Contents

Index

Prev Up Next

SQL Statements (continued), 5 of 6


ROLLBACK

Syntax


Purpose

To undo work done in the current transaction, or to manually undo the work done by an in-doubt distributed transaction.


Note:

Oracle recommends that you explicitly end transactions in application programs using either a COMMIT or ROLLBACK statement. If you do not explicitly commit the transaction and the program terminates abnormally, Oracle rolls back the last uncommitted transaction. See also "COMMIT"


See Also:

 

Prerequisites

To roll back your current transaction, no privileges are necessary.

To manually roll back an in-doubt distributed transaction that you originally committed, you must have the FORCE TRANSACTION system privilege. To manually roll back an in-doubt distributed transaction originally committed by another user, you must have the FORCE ANY TRANSACTION system privilege.

Keywords and Parameters

WORK 

is optional and is provided for ANSI compatibility.  

TO SAVEPOINT savepoint  

rolls back the current transaction to the specified savepoint. If you omit this clause, the ROLLBACK statement rolls back the entire transaction. See also "SAVEPOINT"

 

Using ROLLBACK without the TO SAVEPOINT clause performs the following operations:

  • Ends the transaction

  • Undoes all changes in the current transaction

  • Erases all savepoints in the transaction

  • Releases the transaction's locks

 

 

Using ROLLBACK with the TO SAVEPOINT clause performs the following operations:

  • Rolls back just the portion of the transaction after the savepoint.

  • Erases all savepoints created after that savepoint. The named savepoint is retained, so you can roll back to the same savepoint multiple times. Prior savepoints are also retained.

  • Releases all table and row locks acquired since the savepoint. Other transactions that have requested access to rows locked after the savepoint must continue to wait until the transaction is committed or rolled back. Other transactions that have not already requested the rows can request and access the rows immediately.

 

 

Restriction: You cannot manually roll back an in-doubt transaction to a savepoint.  

FORCE  

manually rolls back an in-doubt distributed transaction. The transaction is identified by the 'text' containing its local or global transaction ID. To find the IDs of such transactions, query the data dictionary view DBA_2PC_PENDING.

See Also: Oracle8i Distributed Database Systems for more information on distributed transactions and rolling back in-doubt transactions. 

 

A ROLLBACK statement with a FORCE clause rolls back only the specified transaction. Such a statement does not affect your current transaction.

Restriction: ROLLBACK statements with the FORCE clause are not supported in PL/SQL.  

Examples

The following statement rolls back your entire current transaction:

ROLLBACK; 

The following statement rolls back your current transaction to savepoint SP5:

ROLLBACK TO SAVEPOINT sp5; 

The following statement manually rolls back an in-doubt distributed transaction:

ROLLBACK WORK 
    FORCE '25.32.87'; 

Prev Up Next
Oracle
Copyright © 1999 Oracle Corporation.

All Rights Reserved.

Library

Product

Contents

Index