VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

SQLERRM

功能描述

sqlerrm函数的主要功能是根据入参错误号匹配RAISE_APPLICATION_ERROR(error_code, message)预定义函数的错误信息。

注意事项

  • 该功能仅在数据库兼容模式为Oracle时支持(即数据库实例初始化时指定DBCOMPATIBILITY='A')。

  • 使用场景:

    • 当传入的错误编号在-20000到-20999时候,输出RAISE_APPLICATION_ERROR(error_code, message)预定义函数的错误信息。
    • 传入的错误编号不在-20000到-20999时候,输出Vastbase自身的错误信息。

语法格式

SQLERRM( error_code)

参数说明

error_code

错误编号。

示例

如果是-20000到-20999,那么raise_application_error定义的错误信息,进行输出对应结果。

1、设置serveroutput 为on(允许将dbms_output.put_line的输出信息输出至vsql的命令界面的屏幕上)。

SET SERVEROUTPUT ON;

2、创建存储过程。

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;
/

3、调用存储过程,打印预定义的错误信息。

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

4、清理环境。

DROP PROCEDURE exp_sqlerrm;