Oracle PL/SQL 自治事務的說明

feelpurple發表於2016-01-28
自治事務是PL/SQL靜態SQL的一個特性,可宣告於儲存過程、函式或觸發器中。它是和主事務分開的事務,可以獨立執行事務,不與主事務共享鎖、資源,不受主事務提交的影響。自治事務可以用來記錄日誌,記錄計數值,而不受主事務回滾的影響。

--建立自治事務的儲存過程

create or replace procedure proc2 is
  PRAGMA AUTONOMOUS_TRANSACTION;
  emp_id number;
begin
  emp_id := 7782;
  update emp_2 set sal = sal + 1000 where empno = emp_id;
  commit;
end;

--在匿名塊中呼叫自治事務的儲存過程
declare
  emp_id number;
begin
  insert into emp_2
    select * from emp_2;
  select max(empno) into emp_id from emp_2 where empno = 7788;
  --呼叫自治事務的儲存過程
  proc2;
  delete from emp where empno = emp_id;
  commit;
end;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26506993/viewspace-1983658/,如需轉載,請註明出處,否則將追究法律責任。

相關文章