oracle中raise_application_error自定义错误。

raise_application_error(-20001,'Romisreadybooked!');能详细讲解下这方法的使用场景吗?这方法能把错误码和提示文字赋给返回... raise_application_error(-20001,'Rom is ready booked!');能详细讲解下这方法的使用场景吗?这方法能把错误码和提示文字赋给返回变量吗?

create index t_idx on t(nvl(x,-1));请问下这个索引,表t的x列什么查询条件时才会用到这个索引。
展开
 我来答
RenKwang
高粉答主

2020-06-13 · 专注解答想答的问题们
RenKwang
采纳数:172 获赞数:33039

向TA提问 私信TA
展开全部

RAISE_APPLICATION_ERROR错误的原因:

调用DBMS_STANDARD(ORACLE提供的包)包所定义的RAISE_APPLICATION_ERROR过程,可以重新定义异常错误消息,将应用程序专有的错误从服务器端转达到客户端应用程序。它为应用程序提供了一种与ORACLE交互的方法。

用户定义的异常错误是通过显式使用RAISE语句来触发。

在PL/SQL 块的定义部分定义异常情况 ;RAISE <异常情况>;在PL/SQL 块的异常情况处理部分对异常情况做出相应的处理。

语法如下:

1、RAISE_APPLICATION_ERROR(error_number,error_message,[keep_errors]);

2、error_number是从–20,000到–20,999之间的参数,这样就不会与ORACLE的任何错误代码发生冲突;

3、error_message 是相应的提示信息(< 2048 字节)。

keep_errors为可选,如果keep_errors=TRUE,则新错误将被添加到已经引发的错误列表中。如果keep_errors=FALSE(缺省),则新错误将替换当前的错误列表。

扩展资料:

ORACLE数据库系统为具有管理ORACLE数据库功能的计算机系统。每一个运行的ORACLE数据库与一个ORACLE实例(INSTANCE)相联系。

一个ORACLE实例为存取和控制一数据库的软件机制。每一次在数据库服务器上启动一数据库时,称为系统全局区(SYSTEMGLOBALAREA)的一内存区(简称SGA)被分配,有一个或多个ORACLE进程被启动。

该SGA 和 ORACLE进程的结合称为一个ORACLE数据库实例。一个实例的SGA和进程为管理数据库数据、为该数据库一个或多个用户服务而工作。

该SGA 和 ORACLE进程的结合称为一个ORACLE数据库实例。一个实例的SGA和进程为管理数据库数据、为该数据库一个或多个用户服务而工作。

参考资料:百度百科-Oracle系统

xiongzhe90
推荐于2016-09-23
知道答主
回答量:6
采纳率:0%
帮助的人:3万
展开全部
看一个例子吧!
eg:
CREATE OR REPLACE TRIGGER change_teacher
BEFORE INSERT OR UPDATE OR DELETE ON teachers
BEGIN
IF (TO_CHAR(SYSDATE, 'HH24') NOT BETWEEN '8' AND '17')
OR (TO_CHAR(SYSDATE, 'DY',
'nls date_langudage = american') IN ('SAT', 'SUN'))
THEN
CASE
WHEN INSERTING THEN
RAISE_APPLICATION_ERROR
(-20001, '在非工作时间不能增加教师信息。');
WHEN UPDATING THEN
RAISE_APPLICATION_ERROR
(-20002, '在非工作时间不能修改教师信息。');
WHEN DELETING THEN
RAISE_APPLICATION_ERROR
(-20003, '在非工作时间不能删除教师信息。');
END CASE;
END IF;
END change_teacher;

DELETE FROM teachers;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友4537610
推荐于2018-04-10
知道答主
回答量:52
采纳率:0%
帮助的人:12.9万
展开全部
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。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式