在oracle預存程序中,交易用來確保資料的一致性,由一組相關的DML語句組成,該組DML語句所執行的操作要麼全部確認,要麼全部取消。執行交易操作時,會在被作用的表和行上加鎖,以防止其他使用者改變表結構,或其他交易在對應行上執行DML操作。
本教學操作環境:Windows7系統、Oracle 11g版、Dell G3電腦。
oracle預存程序的交易處理
#1、交易用於確保資料的一致性,由一組相關的DML語句組成,此組DML語句所執行的操作要麼全部確認,要麼全部取消。
2、當執行交易操作(DML)時,Oracle會在被作用的表上加鎖,以防止其他使用者改變表結構,同時也會在被作用的行上加行鎖,以防止其他交易在對應行上執行DML操作。
3、執行交易提交或交易回溯時,Oracle會確認交易變更或回溯交易、結束交易、刪除保存點、釋放鎖定。
4、提交交易(COMMIT)確認交易變化,結束目前交易、刪除保存點,釋放鎖,使得當前事務中所有未決的資料永久改變。
5、保存點(SAVEPOINT)在目前交易中,標記交易的保存點。
6、回滾事務(ROLLBACK)回滾整個事務,刪除該事務所定義的所有保存點,釋放鎖,丟棄所有未決的資料改變。
7、回滾交易到指定的保存點(ROLLBACK TO SAVEPOINT)回滾目前交易到指定的保存點,丟棄該保存點建立後的任何改變,釋放鎖定。
8、執行DDL、DCL語句,或退出SQL*PLUS時,會自動提交交易;
9、事務期間應避免與使用者互動;
10.查詢資料期間,盡量不要啟動事務;
11、盡可能讓事務持續地越短越好;
12、在事務中盡可能存取最少的資料量
案例:
create or replace procedure stu_proc ( v_id in number, v_name in varchar2, v_age in number, v_msg out varchar2 ) as begin insert into student(id, sname, age) values (v_id, v_name, v_age); commit; v_msg:='添加成功'; exception when others then rollback; v_msg:='失败成功'; RAISE_APPLICATION_ERROR(-20010, 'ERROR:违反唯一索引约束!'); end;
推薦教學:《Oracle教學》
以上是oracle儲存程序的交易有什麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!