Use the SAVEPOINT statement to identify a point in a transaction to which you can later roll back.
Keywords and Parameters
savepoint
Specify the name of the savepoint to be created.
Savepoint names must be distinct within a given transaction. If you create a second savepoint with the same identifier as an earlier savepoint, the earlier savepoint is erased. After a savepoint has been created, you can either continue processing, commit your work, roll back the entire transaction, or roll back to the savepoint.
Example
To update Banda's and Greene's salary in the demo table hr.employees, check that the total department salary does not exceed 314,000, then reenter Greene's salary, enter:
UPDATE employees SET salary = 7000 WHERE last_name = 'Banda'; SAVEPOINT banda_sal;
UPDATE employees SET salary = 12000 WHERE last_name = 'Greene'; SAVEPOINT greene_sal;
SELECT SUM(salary) FROM employees;
ROLLBACK TO SAVEPOINT banda_sal;
UPDATE employees SET salary = 11000 WHERE last_name = 'Greene'; COMMIT;
Read the complete article at http://oracleonline.info/savepoint_to_update.html