This technology is based on undo data and redo logs availables.
Pre-requisite
You need to :
- Activate supplemental log data
- Activate supplemental log data primary key
- Grant execute on DBMS_FLASHBACK package
- Grant SELECT ANY TRANSACTION priviledge to user
These can be done like this :
SQL> alter database add supplemental log data; SQL> alter database add supplemental log data (primary key) columns; SQL> grant execute on DBMS_FLASHBACK to <user>; SQL> grant SELECT ANY TRANSACTION to <user>;
Transaction back-out
See the excellent example from this oracle blog to perform a transaction backout.
For Oracle documentation.