Oracle ROLLBACK語句(回滾事務)
Oracle ROLLBACK語句(回滾事務)
在Oracle中,ROLLBACK語句可以用來撤銷當前事務或有問題的事務。本教程就將教大家如何使用ROLLBACK語句。
ROLLBACK語法
ROLLBACK [ WORK ] [ TO [SAVEPOINT] savepoint_name | FORCE 'string' ];
參數
- WORK:可選的。 它被Oracle添加為符合SQL標準。 使用或不使用WORK參數來發出ROLLBACK會導致相同的結果。
- TO SAVEPOINT savepoint_name:可選的。 ROLLBACK語句撤消當前會話的所有更改,直到由savepoint_name指定的保存點。 如果省略該子句,則所有更改都將被撤消。
- FORCE ‘string’:可選的。它用于強制回滾可能已損壞或有問題的事務。 使用此子句,可以將單引號中的事務ID指定為字符串。 可以在系統視圖中找到名為DBA_2PC_PENDING的事務標識。
- 必須擁有DBA權限才能訪問系統視圖:DBA_2PC_PENDING和V$CORRUPT_XID_LIST。
- 您無法將有問題的事務回滾到保存點。
ROLLBACK語語法示例
我們來看一個示例,演示如何使用ROLLBACK語句在Oracle中發出回滾。
例如:
ROLLBACK;
此ROLLBACK示例執行與以下操作相同:
ROLLBACK WORK;
在這個例子中,隱含了WORK關鍵字,所以前面2個ROLLBACK語句是等價的。 這些示例將回滾當前事務。
Savepoint
可以通過兩種方式將ROLLBACK寫入保存點:
ROLLBACK TO SAVEPOINT savepoint1;
或者
ROLLBACK WORK TO SAVEPOINT savepoint1;
由于始終隱含著WORK關鍵字,因此這兩個ROLLBACK示例都會將當前事務回滾到名為savepoint1的保存點。
Force
最后,看看ROLLBACK的一個例子,它顯示了如何強制回滾一個有問題的事務。
例如,您可以通過兩種方式編寫有問題事務的ROLLBACK:
ROLLBACK FORCE '22.14.67';
或者
ROLLBACK WORK FORCE '22.14.67';
由于始終隱含著WORK關鍵字,因此這兩個ROLLBACK示例都將強制回滾由事務 ID “22.14.67”標識的損壞或有問題的事務。
相關文章
- Oracle Distinct語句
- Oracle In子句
- Oracle LOCK TABLE語句(鎖表)
- Oracle Ascii()函數
- Oracle Asciistr()函數
- Oracle Convert()函數
- Memcached prepend 命令
- Memcached gets 命令
- DB2模式
- DB2表
- DB2 別名
- DB2觸發器
- 12類Oracle日期函數超全面總結
- Oracle常用函數超詳細整理
- Oracle中的table()函數使用
- Oracle中pivot函數圖文實例詳解
- 關于ORA-04091異常的出現原因分析及解決方案
- 連接Oracle數據庫失敗(ORA-12514)故障排除全過程
- Oracle?19c的參數sec_case_sensitive_logon與ORA-01017錯誤問題分析
- Oracle實現豎表轉橫表的幾種常用方法小結