Oracle PL/SQL开发基础(第三十四弹:RAISE_APPLICATION_ERROR)
2017-08-10 23:12
555 查看
RAISE_APPLICATION_ERROR在子程序内部使用时,能从存储子程序中抛出自定义的错误消息。这样就能将错误报告给应用程序而避免范围未捕获异常。
语法如下:
RAISE_APPLICATION_ERROR(error_number, error_message, [keep_errors]);
error_number是范围在-20000到-20999之间的负整数,
error_message是最大长度为2048字节的字符串,
keep_errors是一个可选的布尔值,True表示新的错误将被添加到已经抛出的错误列表中,False表示新的错误将替换当前的错误列表,默认为False。
RAISE_APPLICATION_ERROR只能在存储的子程序中调用。当被调用时,将结束当前的子程序并返回一个用户自定义的错误代码和错误消息给应用程序,这些错误代码和错误消息可以像任何的Oracle错误一样被捕获。
看一个例子:
CRAETE OR REPLACE PROCEDURE registeremployee(...) AS ... BEGIN IF ... THEN RAISE_APPLICATION_ERROR(-20000, '员工编号不能为空'); ELSIF ... THEN RAISE_APPLICATION_ERROR(-20001, '员工已存在'); END IF; ... EXCEPTION WHEN OTHERS THEN RAISE_APPLICATION_ERROR(-20003, '插入数据时出现错误!异常编码:' || SQLCODE || '异常描述:' || SQLERRM); END;
别的子程序或语句块调用这个过程时,如果有相应的异常,就会像普通的Oracle错误一样被捕获。
相关文章推荐
- 【Oracle】PL/SQL 非预定义异常、自定义异常处理、RAISE_APPLICATION_ERROR
- 【Oracle】PL/SQL 非预定义异常、自定义异常处理、RAISE_APPLICATION_ERROR
- Oracle PL/SQL 非预定义异常、自定义异常处理、RAISE_APPLICATION_ERROR
- Oracle PL/SQL开发基础(第五弹:视图)
- Oracle PL/SQL开发基础(第二十九弹:异常处理简介)
- Oracle PL/SQL开发基础(第三十二弹:SQLCODE和SQLERRM)
- Oracle PL/SQL开发基础(第十六弹:记录类型)
- Oracle PL/SQL开发基础(第四弹:索引)
- Oracle PL/SQL开发基础(第三十弹:预定义异常)
- Oracle PL/SQL开发基础(第二十八弹:使用锁定)
- Oracle PL/SQL开发基础(第三十一弹:自定义异常)
- Oracle PL/SQL开发基础(第十七弹:集合类型)
- Oracle PL/SQL开发基础(第二十一弹:基本函数)
- Oracle PL/SQL开发基础(第二十六弹:游标变量)
- Oracle PL/SQL开发基础(第十弹:子查询)
- Oracle PL/SQL开发基础(第三十六弹:异常处理的一些经验)
- Oracle PL/SQL开发基础(第八弹:ROWID伪列)
- Oracle PL/SQL开发基础(第十二弹:插入、更新和删除)
- Oracle 异常处理 raise_application_error sqlcode sqlerrm
- Oracle PL/SQL开发基础(第一弹:创建表和创建约束)