在 Oracle 中,ROLLBACK 語句可以用來撤銷當前事務或有問題的事務。本教程就將教大家如何使用 ROLLBACK 語句。
ROLLBACK [ WORK ] [ TO [SAVEPOINT] savepoint_name | FORCE 'string' ];
WORK
?:可選的。 它被 Oracle 添加為符合 SQL 標準。 使用或不使用 WORK 參數(shù)來發(fā)出 ROLLBACK 會導致相同的結果。TO SAVEPOINT
savepoint_name
?:可選的。 ROLLBACK語句撤消當前會話的所有更改,直到由 savepoint_name 指定的保存點。 如果省略該子句,則所有更改都將被撤消。FORCE
? ?‘string’
:可選的。它用于強制回滾可能已損壞或有問題的事務。 使用此子句,可以將單引號中的事務ID指定為字符串。 可以在系統(tǒng)視圖中找到名為 DBA_2PC_PENDING 的事務標識。我們來看一個示例,演示如何使用 ROLLBACK 語句在 Oracle 中發(fā)出回滾。
例如:
ROLLBACK;
此 ROLLBACK 示例執(zhí)行與以下操作相同:
ROLLBACK WORK;
在這個例子中,隱含了 WORK 關鍵字,所以前面2個 ROLLBACK 語句是等價的。 這些示例將回滾當前事務。
可以通過兩種方式將 ROLLBACK 寫入保存點:
ROLLBACK TO SAVEPOINT savepoint1;
或者
ROLLBACK WORK TO SAVEPOINT savepoint1;
由于始終隱含著 WORK 關鍵字,因此這兩個 ROLLBACK 示例都會將當前事務回滾到名為 savepoint1 的保存點。
最后,看看 ROLLBACK 的一個例子,它顯示了如何強制回滾一個有問題的事務。
例如,您可以通過兩種方式編寫有問題事務的 ROLLBACK:
ROLLBACK FORCE '22.14.67';
或者
ROLLBACK WORK FORCE '22.14.67';
由于始終隱含著 WORK 關鍵字,因此這兩個 ROLLBACK 示例都將強制回滾由事務 ID “22.14.67”標識的損壞或有問題的事務。
更多建議: