Oracle 的异常和回滚

前端之家收集整理的这篇文章主要介绍了Oracle 的异常和回滚前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

commit (提交),rollback(回滚)

DECLARE
   dept_no   NUMBER (2) := 70;
BEGIN
   --开始事务
   INSERT INTO dept 
        VALUES (dept_no,'市场部','北京');               --插入部门记录
   INSERT INTO dept 
        VALUES (dept_no,'后勤部','上海');               --插入相同编号的部门记录        
   INSERT INTO emp                                        --插入员工记录
        VALUES (7997,'威尔','销售人员',NULL,TRUNC (SYSDATE),5000,300,dept_no);
   --提交事务
   COMMIT;
EXCEPTION
   WHEN DUP_VAL_ON_INDEX THEN                            --捕足异常
     DBMS_OUTPUT.PUT_LINE(sqlERRM);                   --显示异常消息
     ROLLBACK;                                           --回滚异常
END;

rollback会默认回滚所有事务,savepoint可以保存点,rollback可以回滚到前一个点,减少数据重复操作。
DECLARE
   dept_no   NUMBER (2) :=90;
BEGIN
   --开始事务
   SAVEPOINT A;
   INSERT INTO dept 
        VALUES (dept_no,'北京');               --插入部门记录
   SAVEPOINT B;   
   INSERT INTO emp                                        --插入员工记录
        VALUES (7997,dept_no);        
   SAVEPOINT C;                
   INSERT INTO dept 
        VALUES (dept_no,'上海');               --插入相同编号的部门记录
   --提交事务
   COMMIT;
EXCEPTION
   WHEN DUP_VAL_ON_INDEX THEN                            --捕足异常
     DBMS_OUTPUT.PUT_LINE(sqlERRM);                   --显示异常消息
     ROLLBACK TO B;                                      --回滚异常
END;
原文链接:https://www.f2er.com/oracle/213539.html

猜你在找的Oracle相关文章