1. 程式人生 > >Oracle(二) – 隱式的事務提交或回滾動作

Oracle(二) – 隱式的事務提交或回滾動作

Commit, rollback 是顯式的提交和回滾語句,還有一些隱式的提交和回滾是大家需要知道並引起注意的:
當如下事件發生是,會隱式的執行Commit動作:
1 、資料定義語句被執行的時候,比如新建一張表:Create Table …
2 、資料控制語句被執行的時候,比如賦權GRANT …( 或者DENY)
3 、正常退出i SQL*Plus 或者PLSQL DEVELOPER, 而沒有顯式的執行COMMIT 或者ROLLBACK 語句。
當如下事件發生時,會隱式執行Rollback 動作:
1 、非正常退出i SQL*Plus , PLSQL DEVELOPER, 或者發生系統錯誤。

課後實驗:
1 )使用Plsql Developer作為開發工具,在資料庫中建立一張表Testtab1 , 往裡面插入一條記錄,不要commit,
然後正常退出PLSQL,再次登陸看看是否已經執行commit動作。
2 )使用Plsql Developer作為開發工具,在資料庫中建立一張表Testtab1 , 往裡面插入一條記錄,不要commit,
然後在工作管理員中將PLSQL程序殺死,再次登陸看看是否已經執行commit動作。

實驗解析:

通過測試表明:

通過正常關閉PLSQL(即不執行commit動作,關閉PLSQL視窗),那麼會隱式的執行commit動作;通過非正常關閉(即第二種方式),那麼會隱式的執行roolback動作。