oracle預存程序的交易處理

來源:互聯網
上載者:User

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;
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.