首頁  >  文章  >  資料庫  >  oracle儲存程序的交易有什麼用

oracle儲存程序的交易有什麼用

青灯夜游
青灯夜游原創
2022-01-25 17:30:191819瀏覽

在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教學

以上是oracle儲存程序的交易有什麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn