1. 程式人生 > >oracle 的自治事務

oracle 的自治事務

ORACLE的AUTONOMOUS TRANSACTION(自治事務),類似於程式碼裡面事務中的獨立事務。
過程: 自治事務是由主事務呼叫但是獨立於它的事務。在自治事務被呼叫執行時,主事務被掛起,在自治事務內部,一系列的DML可以被執行,
      並且commit或rollback。由於AT的獨立性,它的commit和rollback並不影響MT的執行效果。
作用:  主事務回滾時,不需要作回滾處理的操作; 事務提交和回滾時不會影響到主事務中的操作。
實現: 只需下列PL/SQL的宣告部分加上PRAGMAAUTONOMOUS_TRANSACTION就可以了。
可以加自治事務的有:
  1. 頂級的匿名PL/SQL塊
  2. Functions 或 Procedure(獨立宣告或宣告在package中都可)
  3. SQL Object Type的方法
  4. 觸發器。
eg:  
 procedure local is
   pragma AUTONOMOUS_TRANSACTION;
 begin ...
注意:
   1. 在匿名PL/SQL塊中,只有頂級的匿名PL/SQL塊可以被設為自治事務
   2. 如果AT試圖訪問被MT控制的資源,可能有deadlock發生.
   3. Package 不能被宣告為AT,只有package所擁有的function和procedure 才能宣告為自治事務
   4. 自治事務程式必須以commit 或rollback結尾,否則會產生Oracle錯誤ORA-06519: active autonomous transaction detected and rolled back

相關推薦

快訊:Oracle自治事務處理資料庫釋出和19c路線圖

Oracle 舊金山時間8月7日宣佈,其自治事務處理(OLTP)資料庫開始提供服務,這距離去年

Oracle EBS 自治事務

自治事務程式主要是自主性,那就是,獨立於主要的事務。之所以獨立,或者提交之後會影響其他事務處理,本質在於它本身符合編譯指令的規則,也就是說它屬於在編譯階段就執行的指令,而不是在執行階段執行的。 當自治事務行使時,主要的事務處理是暫緩狀態的。自治事務完全獨立於主要的事務處理。他們不分享鎖、資源或者是提交的獨立

Oracle 儲存過程 中如何使用事務Transaction 自主事務 自治事務

  Oracle基礎 儲存過程和事務 一、事務和儲存過程   在儲存過程中如何使用事務。當需要在儲存過程中同時執行多條新增、修改、刪除SQL語句時,為了保證資料完整性,我們需要使用事務。使用方式和在PL-SQL中非常相似,但也有一些區別。   --帶事務的儲存過程 C

Oracle宣佈在雲上正式上線 自治事務處理資料庫

在 8 月7日,Oracle 宣佈在雲上正式上線自治事務處理資料庫,這個名詞 ATP應對於早前釋

關於Oracle AUTONOMOUS TRANSACTION(自治事務)的介紹

AUTONOMOUS TRANSACTION(自治事務)的介紹   在基於低版本的ORACLE做一些專案的過程中,有時會遇到一些頭疼的問題,比如想在執行當前一個由多個DML組成的transaction(事務)時,為每一步DML記錄一些資訊到跟蹤表中,由於事務的原子性,這些

oracle自治事務

ORACLE的AUTONOMOUS TRANSACTION(自治事務),類似於程式碼裡面事務中的獨立事務。 過程: 自治事務是由主事務呼叫但是獨立於它的事務。在自治事務被呼叫執行時,主事務被掛起,在自治事務內部,一系列的DML可以被執行, 並且com

oracle觸發器中使用自治事務commit or rollback

採用自治事務的方式,可以在trigger裡rollback or commit; 例子如下: SQL codeCREATE OR REPLACE TRIGGER TRI_TRACE   BEFORE INSERT OR DELETE OR UPDATE ON XXTABLE

Oracle事務與鎖關係

事務與鎖是不同的。 事務具有ACID( 原子性、一致性、隔離性和永續性),鎖是用於解決隔離性的一種機制。 事務的隔離級別通過鎖的機制來實現。 另外鎖有不同的粒度,同時事務也是有不同的隔離級別的 (一般有四種:讀未提交Read uncommitted, 讀已提交Read committ

QT操作Oracle資料庫(事務、儲存過程)

QT操作Oracle資料庫可以使用QODBC、QOCI兩種驅動,這裡使用QODBC驅動。在使用QOCI驅動操作oracle時,事務不能回滾,可能是我編譯的QOCI驅動有問題,但是暫時沒有找到原因。 #ifndef QTTEST_H #define QTTEST_H #include <

自治事務 PRAGMA AUTONOMOUS TRANSACTION

                在觸發器中操作觸發此觸發器的表,用PRAGMA AUTONOMOUS_TRANSACTION選項。15.1為何使用自治事務 無法回滾的審計一般情況下利用觸發器禁止某些對錶的更新等操作時,若記錄日誌,則觸發器最後丟擲異常時會造成日誌回滾。利用自治事務可防止此點。避免變異表即在觸發

PLSQL總結——16.自治事務

/* 我們應該知道,當一個PL/SQL塊中出現異常時,Oracle資料庫不會回滾這個塊中的DML語句的修改。 這時候我們需要手動rollback 在寫程式碼的時候,我們不會在被呼叫的過程寫commit。因為一般環境下,外部發生異常,我們都希望進行回滾資料。

【DDL】DDL的隱式commit和自治事務

DDL的隱式commit和自治事務 DDL的隱式commit ddl的執行過程 Begin   Commit;   Ddl;   Commit; Exception   When others then        Rollback;        Raise; En

匪夷所思:罕見的 Oracle 全域性事務鎖等待事件分析

資料技術嘉年華等你來活動預告:11.16-17日,北京市東三環中路61號富力萬麗酒店,相聚資料技

Oraclee 事務處理以及在c#中使用oracle事務處理

1、 savepoint(建立儲存點,用於失誤時回滾到儲存點) 建立儲存點a1:savepoint a1; ............................[其間幹了很多事] 再建立儲存點a2:savepoint a2; ......................

自治事務處理資料庫(ATP)正式上線

更多資料庫諮詢精彩早知道:“資料和雲”公眾號 在8月7日,Oracle宣佈在雲上正式上線自治事務處理資料庫,這個名詞ATP應對於早前釋出的ADW(今年3月份Oracle宣佈正式上線的自治資料倉庫資料庫)。 完整的釋出會視訊連結在這裡。 全自動 Nothin

oracle 資料庫事務,提交,回滾,儲存點,表的鎖定,隱式鎖,顯示鎖,寫鎖,讀鎖,排他鎖,共享鎖

資料庫事務的概念 事務是由相關操作構成的一個完整的操作單元。兩次連續成功的COMMIT或ROLLBACK之間的操作,稱為一個事務。在一個事務內,資料的修改一起提交或撤銷,如果發生故障或系統錯誤,整個事務也會自動撤銷。 比如,我們去銀行轉賬,操作可以分為下面兩個環節: (1)

Oracle事務處理控制用法

oracle 事物控制包括 COMMINT ROLLBACK SAVEPOINT avepoint是事務內部允許部分rollback的標誌符。因為事務中對記錄做了修改,我們可以在事務中建立savepoint來標識不同的點。如果遇到錯誤,就可以rollback到不同的點或直接回來事務最開始的點。  

函式中的DML語句的執行問題--自治事務

問題:寫一個函式,函式中要更新資料庫中的某個欄位,函式在使用時格式是:select funcName() from dual; 那麼此函式中如果含有update語句 函式: create or replace function CalABGrpRearBounty() ret

資料庫基礎知識五:自治事務

自治事務 PRAGMA AUTONOMOUS_TRANSACTION中文翻譯過來叫“自治事務”,對於定義成自治事務的Procedure,實際上相當於一段獨立執行的程式段,這段程式不依賴於主程式,也不干涉主程式。 自治事務常用於 事務的原子性會使將錯誤資訊記入資料

Oracle SQL 事務及觸發器

事務 一個事務的生命週期包含三個部分: 1. 事務開始 2. 事務執行 3. 事務結束 Oracle不會顯式宣告事務開始,而是由Oracle自行處理 commit rollback set point rollback to