Oracle 的异常和回滚
发布时间:2020-12-12 16:16:00 所属栏目:百科 来源:网络整理
导读:commit (提交),rollback(回滚) DECLARE dept_no NUMBER (2) := 70;BEGIN --开始事务 INSERT INTO dept VALUES (dept_no,'市场部','北京'); --插入部门记录 INSERT INTO dept VALUES (dept_no,'后勤部','上海'); --插入相同编号的部门记录 INSERT INTO em
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; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |