oracle存儲過程的事務有什么用

oracle存儲過程中,事務用于確保數據的一致性,由一組相關的DML語句組成,該組DML語句所執行的操作要么全部確認,要么全部取消。當執行事務操作時,會在被作用的表和行上加鎖,以防止其他用戶改變表結構,或其他事務在相應行上執行DML操作。

oracle存儲過程的事務有什么用

本教程操作環境: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教程

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊9 分享