ORACLE的异常处理为啥不执行

big_mouse 2003-10-15 08:41:54
begin
select sum(charge) into v_fee from charge
exception
when NO_DATA_FOUND then --当charge表中没有数据时为啥不执行此语句,而直接执行下面的 if v_fee>=10000 then???
v_fee:=0;
end;
if v_fee>=10000 then
...全文
33 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lastdrop 2003-10-15
  • 打赏
  • 举报
回复
select sum(charge) into v_fee from charge
你用的是集合函数sum,即使没有记录,也是有值返回的,应该是NULL吧,当然不会触发异常了。

select count(*),sum(charge) into l_count,v_fee from charge;

if l_count = 0 then

end if;

一样可以达到你的目的。
big_mouse 2003-10-15
  • 打赏
  • 举报
回复
我以前就是用when others的,问题是一样的呀,快帮帮我吧
我用的ORACLE是8.1.7.4
tsj68 2003-10-15
  • 打赏
  • 举报
回复
试试when others,可能在no_data_found已经raise其他异常了.

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧