熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

Oracle數據的完整性的嵌套事務調用的研究

2013-11-13 15:46:32  來源: Oracle 

  為了保護數據的完整性我們用了很多的方法比如數據表的主鍵約束
  
  鍵約束觸發器等等我們今天討論的就是在處理數據直接的事務的時
  
  候保存數據的完整性比如我在一個存儲過程中Proc_SaveBill保存一
  
  張單據調用一個函數Func_GenerateCode來生成一個單據的編號假如我
  
  的這個函數是從一個存有最大編號的表中取出的並且把編號加一大家可
  
  能會想象的可能產生的問題就是如果我在Proc_SaveBill中的保存之前通
  
  過Func_GenerateCode得到一個編號如果後面的保存不成功怎麼辦是不
  
  是就丟了一個編號因為我調用一次Func_GenerateCode就會增加一個編號
  
  的那麼為了使我們的數據完整不至於丟單就的使用事務的會滾現在
  
  又有問題了存儲過程會會滾到函數中嘛!答案是如果函數中有事務或
  
  有commit語句那麼是會滾不了的否則可以會滾因為事務是會滾到上
  
  一個committ或rollback之後的所有事物所以我在這裡說明是為了提醒大
  
  家考慮事務的嵌套回滾的一些方法但是在存儲過程調用存儲過程中
  
  果被調用的存儲過程執行沒有錯誤那麼很遺憾是會滾不了的為了解決
  
  這個問題Oracle中用自治事務來處理上述出現的問題在存儲過程的is\as
  
  後面聲明PRAGMA AUTONOMOUS_TRANSACTION; 自治事務防止嵌套提交使
  
  事務在自己的事務區內提交或回滾不會影響其他的事務
  
  今天在這裡就說這些當然這些是比較基礎的給初學者提個醒!

From:http://tw.wingwit.com/Article/program/Oracle/201311/17288.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.