华为云云数据库GaussDBDBE_PLDEVELOPER.gs_errors_云淘科技

用于记录PL/SQL对象(存储过程、函数、包、包体)编译过程中遇到的报错信息,具体内容见下列字段描述。

打开plsql_show_all_error参数后,如果编译过程中存在报错,则会跳过报错继续编译并把报错信息记录在gs_errors中,如果关闭plsql_show_all_error参数,且behavior_compat_options参数不为skip_insert_gs_source,则会直接将报错信息插入此表中。

该表的owner是创建的用户,修改存储过程或者package的owner不会修改该表信息。

表1 DBE_PLDEVELOPER.gs_errors字段

名称

类型

描述

id

oid

对象的ID。

owner

bigint

对象创建用户ID。

nspid

oid

对象的模式ID。

name

name

对象名。

type

text

对象类型(procedure/function/package/package body)。

line

integer

行号。

src

text

报错信息。

创建包头时候开头(as/is之前)和结尾(end之后),如果出现错误,不会记录在gs_errors表格里面,会直接在客户端返回错误的行号和该行具体内容,返回的行号不一定准确。个别is本身和end本身错误场景也不会记录在gs_errors表格里面。
创建包体时候开头(as/is之前)和结尾(end之后),如果出现错误,不会记录在gs_errors表格里面,会直接在客户端返回错误的行号和该行具体内容,返回的行号不一定准确。个别is本身和end本身错误场景也不会记录在gs_errors表格里面。
创建包体时候,函数或者存过结尾(end之后),如果出现错误,不会记录在gs_errors表格里面,会直接在客户端返回错误的行号和该行具体内容,行号不一定准确。
创建包体时候,函数或者存过开头(as/is 以及 as/is之前)如果出现错误,报错行数不准确。
创建包头时候,变量声明少分号,会记录在gs_errors表格里面,记录的报错行号不准确。开启参数不会记录。
包体内存储过程或函数内部,自治事务标识符PRAGMA AUTOMOUS_TRANSACTION声明错误不确保是否能记录在gs_errors表里。
客户端直接报错,但是gs_errors表格未记录的情况,如果客户端报错行号不对,本需求不纠正原本报错的行号。
对于类似 if ….then、for….loop、when …. then 语句中间的错误或EXCEPTION本身错误,报错行号在本行,而不是下一个分号所在行。
包内存储过程或函数内部begin本身错误的场景,报错行数不准。

父主题: DBE_PLDEVELOPER

同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家