oracle事務中的儲存點
使用者在事務(transaction)內可以宣告(declare)被稱為儲存點(savepoint)
的標記。儲存點將一個大事務劃分為較小的片斷。
使用者可以使用儲存點(savepoint)在事務(transaction)內的任意位置作標
記。之後使用者在對事務進行回滾操作(rolling back)時,就可以選擇從當前
執行位置回滾到事務內的任意一個儲存點。例如使用者可以在一系列複雜的更
新(update)操作之間插入儲存點,如果執行過程中一個語句出現錯誤,用
戶 可以回滾到錯誤之前的某個儲存點,而不必重新提交所有的語句。
在開發應用程式時也同樣可以使用儲存點(savepoint)。如果一個過程
(procedure)內包含多個函式(function),使用者可以在每個函式的開始位置
建立一個儲存點。當一個函式失敗時, 就很容易將資料恢復到函式執行之前
的狀態,回滾(roll back)後可以修改引數重新呼叫函式,或執行相關的錯誤
處理。
當事務(transaction)被回滾(rollback)到某個儲存點(savepoint)後,
Oracle將釋放由被回滾語句使用的鎖。其他等待被鎖資源的事務就可以繼續
執行。需要更新(update)被鎖資料行的事務也可以繼續執行。
將事務(transaction)回滾(roll back)到某個儲存點(savepoint)的過程如
下:
1. Oracle 回滾指定儲存點之後的語句
2. Oracle 保留指定的儲存點,但其後建立的儲存點都將被清除
3. Oracle 釋放此儲存點後獲得的表級鎖(table lock)與行級鎖(row
lock),但之前的資料鎖依然保留。
被部分回滾的事務(transaction)依然處於活動狀態,可以繼續執行。
一個事務(transaction)在等待其他事務的過程中,進行回滾(roll back)到
某個儲存點(savepoint)的操作不會釋放行級鎖(row lock)。為了避免事務
因為不能獲得鎖而被掛起,應在執行 UPDATE 或 DELETE 操作前使用 FOR
UPDATE ... NOWAIT 語句。(以上內容講述的是回滾儲存點之前所獲得的
鎖。而在儲存點之後獲得的行級鎖是會被釋放的,同時儲存點之後執行的
SQL 語句也會被完全回滾)。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8183550/viewspace-667676/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 庫存-Mysql中的事務、鎖與儲存引擎MySql儲存引擎
- JDBC 事務(二)回滾到儲存點JDBC
- 儲存過程中巢狀事務儲存過程巢狀
- 不要在儲存過程中控制事務儲存過程
- 關於事務的儲存過程儲存過程
- oracle 中的事務Oracle
- MySQL 儲存過程中事務sql異常回滾MySql儲存過程
- oracle plsql儲存過程_if判斷與事務commitOracleSQL儲存過程MIT
- MySQL索引、事務與儲存引擎MySql索引儲存引擎
- MySQL 儲存過程/遊標/事務MySql儲存過程
- NOSQL儲存的基於事件的事務實現SQL事件
- 分散式事務 TCC-Transaction 原始碼解析 —— 事務儲存器分散式原始碼
- oracle自動儲存管理(ASM)的優點OracleASM
- 談談MySQL InnoDB儲存引擎事務的ACID特性MySql儲存引擎
- DAOS 分散式非同步物件儲存|事務模型分散式非同步物件模型
- 資料庫索引、事務及儲存引擎 (續資料庫索引儲存引擎
- 移動加密那點事兒_值儲存加密加密
- oracle儲存過程中的陣列Oracle儲存過程陣列
- oracle事務知識點小結Oracle
- SQL Server資料庫事務日誌儲存序列SQLServer資料庫
- Oracle 儲存過程中的DDL語句Oracle儲存過程
- java中呼叫ORACLE儲存過程JavaOracle儲存過程
- 命令(XA ROLLBACK) 讓儲存叢集回滾GT 的事務分支
- MySQL索引、事務以及儲存引擎的相關知識和命令MySql索引儲存引擎
- 儲存過程、觸發器與事務之間的關係儲存過程觸發器
- 選擇雲端儲存服務需要注意哪些事項?
- 物件儲存服務中物件業務的非標介面物件
- oracle 儲存過程中螢幕列印Oracle儲存過程
- Jsp中呼叫Oracle儲存過程JSOracle儲存過程
- oracle的儲存過程Oracle儲存過程
- 關於ORACLE大型事務回滾的幾個點Oracle
- oracle 事務Oracle
- oracle事務Oracle
- MySQL之資料庫儲存引擎及事務ACID特性MySql資料庫儲存引擎
- tcbs_批量儲存過程_plsql事務_savepoint_異常儲存過程SQL
- 儲存過程注意事項儲存過程
- 客戶端儲存那些事客戶端
- Oracle儲存過程中跳出迴圈的寫法Oracle儲存過程