PLSQL Language Referenc-PL/SQL靜態SQL-自治事務-控制自治事務
控制自治事務
自治程式中的第1條SQL語句開始了一個事務。當一個事務結束之後,下一個SQL語句開始了另一個事務。上一次提交或回滾之後所有SQL語句構成了當前的事務,控制自治事務需要使用下面的語句:
COMMIT; ROLLBACK [TO savepoint_name] SAVEPOINT savepoint_name SET TRANSACTION |
(1)進入和離開
當進入自治程式的可執行部分時,主事務掛起;當退出程式時,主事務恢復。
如果試圖不提交或回滾就退出自治事務,則會引發異常。如果異常沒被處理或由於其它未被處理的異常而導致事務結束,則事務會回滾。
為了正常退出,必須顯式地提交或回滾所有自治事務。如果程式或它呼叫的程式有未決的事務,則PL/SQL會引發異常,未決的事務被回滾。
(2)提交和回滾
COMMIT和ROLLBACK結束了活動的自治事務,但沒有退出自治程式。當一個事務結束了,下一個SQL語句就開始了下一個事務。一個自治程式可以包含多個自治事務,如果它執行多個commit語句。
(3)儲存點
儲存點的作用域是定義它的事務。在主事務中定義的儲存點與它的自治事務中定義的儲存是無關的。即主事務和自治事務可以使用相同的儲存點名稱。
只能回滾到在當前事務中宣告的儲存點。在自治事務中不能回滾到在主事務中宣告的儲存點。要達到這種效果必須通過退出自治程式來繼續主事務。
在主事務中,回滾到自治事務開始之前宣告的一個儲存點,不會回滾自治事務。因為自治事務是完全獨立於主事務的。
(4)避免自治事務錯誤
不能在自治程式中自治事務開始時執行PIPE ROW語句,必須在執行PIPE ROW語句之前關閉自治事務。好在執行PIPE ROW語句之前,通常會提交或回滾自治事務。
為了避免錯誤,要記住:
n 如果自治事務試圖訪問由主事務所擁有的資源,可能會引發死鎖。資料庫在自治事務中引發異常,如果異常未被處理,則事務被回滾。
n 資料庫初始化引數TRANSACTIONS指定了併發事務的最大數目。因為自治事務是與主事務併發執行,所以那個數目可能會被超出。
n 如果試圖不提交或回滾就退出活動的自治事務,資料庫會引發異常,如果異常沒有得到處理,則事務被回滾。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/17013648/viewspace-1123695/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 巢狀事務 VS 自治事務Oracle巢狀
- AUTONOMOUS TRANSACTION(自治事務)的介紹(轉)
- PostgreSQL DBA(68) - 使用DBLink實現自治事務SQL
- 動態SQL-條件分頁SQL
- Nginx靜態服務Nginx
- Nginx服務系列——靜態資源web服務NginxWeb
- Blazor靜態服務端呈現(靜態SSR)身份認證Blazor服務端
- sqlmap支援自動偽靜態批次檢測SQL
- Java自學入門之靜態變數Java變數
- go-zero微服務框架的靜態檔案服務Go微服務框架
- 自動部署基於issues的靜態部落格
- 自動化漏洞挖掘:靜態程式分析入門
- Caddy 服務-- 自動httpsHTTP
- 服務自啟指令碼指令碼
- 靜態網站託管服務平臺網站
- QTcpServer實現web靜態資源服務QTTCPServerWeb
- SQL-函式 - 聚合函式SQL函式
- SQL-小白最佳入門sql查詢一SQL
- 利用 GitHub Actions 實現自動部署靜態部落格Github
- c語言中自動儲存期和靜態儲存期C語言
- 一個後臺靜態模板,自帶excel,print,cvsExcel
- PostgreSql擴充套件Sql-動態載入共享庫(C函式)SQL套件函式
- 任務異常自動告警
- 微服務測試之靜態程式碼掃描微服務
- Helix QAC—原始碼級靜態自動化測試工具原始碼
- centos 自動啟動指令碼和自啟動服務CentOS指令碼
- 在SQL Server上測試事務日誌的自動增長(三)QOSQLServer
- 在SQL Server上測試事務日誌的自動增長(二)TGSQLServer
- 在SQL Server上測試事務日誌的自動增長(一)JPSQLServer
- [20180509]配置靜態監聽服務與ORA-12514
- Ubuntu Server 24.04 自啟動服務UbuntuServer
- RMAN自動備份任務新增
- 支撐性服務 & 自動化
- [Kyana]使用FlowUS+elog+Hexo+GithubAction自動化靜態部落格HexoGithub
- 1. 數碼管的靜態動態控制
- SQL-去除資料庫字串左右空格SQL資料庫字串
- (摘)sql-索引的作用(超詳細)SQL索引
- SQL-基礎語法 - 條件分支SQL
- 【Azure 應用服務】Azure App Service 自帶 FTP服務APPFTP