View the following SQL statements:
Transaction T1
SQL> INSERT INTO hr.regions
2 VALUES (5,’Pole’);
3 COMMIT;
Transaction T2
SQL> UPDATE hr.regions
2 SET region_name=’Poles’
3 WHERE region_id = 5;
4 COMMIT;
Transaction T3
SQL> UPDATE hr.regions
2 SET region_name=’North and South Poles’
3 WHERE region_id = 5;
You want to back out transaction T2. Which option would you use?
A.
It is possible, but transaction T3 also backs out.
B.
It is possible with the NOCASCADE_FORCE option.
C.
It is possible with the NONCONFLICT_ONLY option.
D.
It is not possible because it has conflicts with transaction T3.
Explanation:
Table 12-2 Flashback TRANSACTION_BACKOUT Options
CASCADE
Backs out specified transactions and all dependent transactions in a post-order fashion (that is, children are
backed out before parents are backed out).
Without CASCADE, if any dependent transaction is not specified, an error occurs.
NOCASCADE
Default. Backs out specified transactions, which are expected to have no dependent transactions. First
dependent transactions causes an error and appears in *_FLASHBACK_TXN_REPORT.
NOCASCADE_FORCE
Backs out specified transactions, ignoring dependent transactions. Server runs undo SQL statements for
specified transactions in reverse order of commit times. If no constraints break and you are satisfied with the
result, you can commit the changes; otherwise, you can roll them back.
NONCONFLICT_ONLY
Backs out changes to nonconflicting rows of the specified transactions. Database remains consistent, but
transaction atomicity is lost.