ORACLE中RAISE_APPLICATION_ERROR用法
来源:互联网 发布:如何判断淘宝号被黑 编辑:程序博客网 时间:2024/05/19 12:39
可能不是很多人知道 RAISE_APPLICATION_ERROR 的用途是什么,虽然从字面上已经猜到这个函数是干什么用的。平时用来测试的异常处理,我们都是通过dbms_output.put_line来输出异常信息,但是在实际的应用中,需要把异常信息返回给调用的客户端。
其实 RAISE_APPLICATION_ERROR 是将应用程序专有的错误从服务器端转达到客户端应用程序(其他机器上的SQLPLUS或者其他前台开发语言)
RAISE_APPLICATION_ERROR 的声明:
PROCEDURE RAISE_APPLICATION_ERROR( error_number_in IN NUMBER, error_msg_in IN VARCHAR2);
里面的错误代码和内容,都是自定义的。说明是自定义,当然就不是系统中已经命名存在的错误类别,是属于一种自定义事务错误类型,才调用此函数。error_number_in 之容许从 -20000 到 -20999 之间,这样就不会与 ORACLE 的任何错误代码发生冲突。error_msg_in 的长度不能超过 2k,否则截取 2k。
举个例吧:
阻止小于18岁的用户增加到数据库 temp_age表中。
-- 建表create table temp_age(age_id number(5),age number(3));
-- 建触发器create or replace trigger t_temp_age_checkbefore insert on temp_age for each row begin if :new.age < 18 then raise_application_error(-20001,'age must at least 18 years old'); end if; end;
-- 客户端程序declare no_baby_allowed exception; pragma exception_init(no_baby_allowed,-20001); begin insert into temp_age(age_id,age) values(1,20); insert into temp_age(age_id,age) values(2,17); insert into temp_age(age_id,age) values(3,18); exception when no_baby_allowed then dbms_output.put_line(sqlerrm); end;
客户端程序执行输出结果:
ORA-20001: age must at least 18 years old
ORA-06512: 在 "LCAM_DEVELOP.T_TEMP_AGE_CHECK", line 4
ORA-04088: 触发器 'LCAM_DEVELOP.T_TEMP_AGE_CHECK' 执行过程中出错
0 0
- ORACLE中RAISE_APPLICATION_ERROR用法
- oracle存储过程中RAISE_APPLICATION_ERROR用法
- oracle存储过程中RAISE_APPLICATION_ERROR用法
- oracle存储过程中RAISE_APPLICATION_ERROR用法
- ORACLE中的Raise_application_error用法
- oracle 中raise_application_error 使用方法
- oracle触发器中的RAISE_APPLICATION_ERROR用法
- 3.oracle:raise_application_error用法(转载)
- RAISE_APPLICATION_ERROR用法
- RAISE_APPLICATION_ERROR用法
- RAISE_APPLICATION_ERROR用法
- RAISE_APPLICATION_ERROR用法
- RAISE_APPLICATION_ERROR 用法
- RAISE_APPLICATION_ERROR用法
- RAISE_APPLICATION_ERROR用法
- RAISE_APPLICATION_ERROR用法
- RAISE_APPLICATION_ERROR用法
- RAISE_APPLICATION_ERROR用法
- 存储过程 使用解说简介
- Drawable资源——Scale Drawable 规模可绘制
- IO编程
- android test review
- 调整图像- 自动对比度、自动色阶算法
- ORACLE中RAISE_APPLICATION_ERROR用法
- 自定义ScrollView实现阻尼效果(类似于QQ下拉一段距离)
- MySQL Data source rejected establishment of connection, message from server: "Too many connections"
- SSH中发生异常java.lang.IllegalStateException: getOutputStream() has already been called for this response
- git 常用命令
- Hadoop新手学习指导之hadoop核心知识学习
- 图像缩放的双线性内插值算法的原理解析
- HDU 4635 强联通分量
- css 中的盒子模型