SQLERRM
功能描述
sqlerrm函数的主要功能是根据入参错误号匹配RAISE_APPLICATION_ERROR(error_code, message)预定义函数的错误信息。
注意事项
该功能仅在数据库兼容模式为Oracle时能够使用(即创建DB时DBCOMPATIBILITY='A'),在其他数据库兼容模式下不能使用该特性。
使用场景:
- 当传入的错误编号在-20000到-20999时候,输出RAISE_APPLICATION_ERROR(error_code, message)预定义函数的错误信息。
- 传入的错误编号不在-20000到-20999时候,输出Vastbase自身的错误信息。
语法格式
SQLERRM( error_code)
参数说明
error_code
错误编号。
示例
如果是-20000到-20999,那么raise_application_error定义的错误信息,进行输出对应结果。
1、创建并切换至兼容Oracle的数据库db_oracle。
CREATE DATABASE db_oracle DBCOMPATIBILITY='A';
\c db_oracle
2、打开serveroutput参数(使信息从存储过程传输回应用程序,输出在屏幕上)。
SET SERVEROUTPUT ON;
3、创建存储过程。
create procedure exp_sqlerrm(
t1 in date,
t2 in date
)is
begin
if t1<t2 then
raise_application_error(-20000,'testErr---Date t1 is earlier than t2.');
end if;
end;
/
4、调用存储过程,打印预定义的错误信息。
DECLARE
past_due EXCEPTION;
PRAGMA EXCEPTION_INIT(past_due,-20000);
BEGIN
exp_sqlerrm('2020-01-01',sysdate);
EXCEPTION
WHEN past_due THEN
DBMS_OUTPUT.PUT_LINE(SQLERRM(-20000));
END;
/
结果返回如下:
testErr---Date t1 is earlier than t2.
ANONYMOUS BLOCK EXECUTE