19.处理自定义例外

处理自定义例外
预定义例外和自定义例外都是与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来调用程序时,发出提示消息。

猜你喜欢

转载自1124117571.iteye.com/blog/2288891
今日推荐