处理自定义例外
预定义例外和自定义例外都是与oracle错误相关的,并且出现的oracle错误会隐含的触发相应的例外;而自定义例外与oracle错误没有任何关联,它是由开发人员为特定情况所定义的例外
?请编写一个pl/sql块,接收一个雇员的编号,并给该雇员工资增加1000元,如果该雇员不存在,请提示
--自定义例外
create or replace procedure ex_test(sunNo number)
is
--定义一个例外
myexc exception;
begin
--更新用户sal
update kkkk set sal=sal+1000 where empno=sunNo;
--sql%notfound这是表示没有update
--raise myexc;触发myexc
if sql%notfound then
raise myexc;
end if;
exception
when myexc then
dbms_output.put_line('没有更新任何用户!');
end;
显示出的现象:
SQL> exec ex_test(353);
没有更新任何用户!
PL/SQL procedure successfully completed
SQL> call ex_test(5345);
Method called
SQL> exec ex_test(535);
没有更新任何用户!
没有更新任何用户!
PL/SQL procedure successfully completed
总结:如果自定义了一个例外,如果使用call来调用程序触发了例外,但是不会提示任何消息,会将消息存储起来,当使用exec来调用程序时,发出提示消息。
19.处理自定义例外
最新推荐文章于 2024-10-02 11:52:29 发布