oracle存储过程异常处理问题,Oracle存储过程异常处理中应注意的问题

4345f72e97e5ce0bcf8da6411dab2a73.png

如果主存储过程和主函数由子过程或子函数组成,则子函数或子程序是否可以包含异常处理

基于以下原则:

首先oracle 过程 异常处理,如果将主程序和子程序作为一个事务处理,则不能在子程序中触发异常. 异常应在主调用程序中处理. 如果在子程序中处理了异常,如程序出现异常,则在异常处理之后,将继续执行在调用程序中调用的异常子程序的以下代码,从而启动新的事务,这破坏了事务的一致性,从而破坏了数据的一致性

主要调用过程如下:

过程sp_procedure

115ad8fc74d3bcbcd367230119ed3a11.jpg

vs_pay_year_month varchar2(6);

vs_sql varchar2(10000);

开始

sp_procedure1;

sp_procedure2;

update emp set empname ='张三'其中empid ='00001'

06fdb498ee98a2d2405c4d0c0dcf9281.png

例外

何时有其他人

-发生异常,将禁止的触发器设置为有效

vs_sql: ='更改表sal_t_mainper启用所有触发器';

立即执行vs_sql;

end;

a8671a1e70e0f9b158d9a9d083539842.png

子例程:

过程sp_procedure1

开始

更新部门集dept_name ='人事部门',其中deptid ='0001'

从部门deptid ='0002'删除

img_2_2409648583D3163582901_27.jpg

例外

何时有其他人

-发生异常,将禁止的触发器设置为有效

raise_application_error(-20001,“删除时发生错误!”);

end;

因此oracle 过程 异常处理,不允许在子程序中处理异常,这将破坏数据的一致性

第二,如果主程序和子程序不作为一个事务处理,则可以在子程序中触发异常,但这很少发生.

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/jisuanjixue/article-169001-1.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值