请教 plsql中如何显式的抛出异常??

oodick 2010-03-25 08:40:44
RT,现在有一个需求,如果遇到某种条件的话,程序就需要跳转到某个已经定义的异常上去?
请问plsql中如何实现呢??感谢各位指点
...全文
898 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
oodick 2010-03-25
  • 打赏
  • 举报
回复
OK 已经搞定了 多谢
tangren 2010-03-25
  • 打赏
  • 举报
回复
SQL> CREATE OR REPLACE PROCEDURE pb IS
2 invalid_data EXCEPTION;
3 PRAGMA EXCEPTION_INIT(invalid_data, -20100);
4 v_sqlerrm VARCHAR2(2000);
5 BEGIN
6 IF TRUE THEN
7 RAISE_APPLICATION_ERROR(-20100, 'Invalid Registration');
8 END IF;
9 EXCEPTION
10 WHEN invalid_data THEN
11 v_sqlerrm := SQLERRM;
12 dbms_output.put_line(v_sqlerrm);
13 END;
14 /

过程已创建。

SQL>
SQL> SET serveroutput ON;
SQL> exec pb;
ORA-20100: Invalid Registration

PL/SQL 过程已成功完成。

SQL>
yanran_hill 2010-03-25
  • 打赏
  • 举报
回复
oracle中,允许使用“RAISE_APPLICATION_ERROR”函数产生一个用户自定义的错误,使得事务进入异常处理
PROCEDURE RAISE_APPLICATION_ERROR( error_number_in IN NUMBER, error_msg_in IN VARCHAR2);
error_number_in 之容许从 -20000 到 -20999 之间
在开发存储过程或者pl sql时,可以根据需要随时产生 SQL错误,并在事务中使用
exception语句处理指定错误号的后续工作
Adebayor 2010-03-25
  • 打赏
  • 举报
回复
raise 你的自定义异常;

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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