嗨,有什么方法可以捕获在 ORACLE 中引发异常的对象(例如表和列)?
我需要确定对象名称以自定义错误消息,向用户显示发生异常的表和字段的名称。
我知道有一个变量 SQLCODE 和 SQLERRM,但我想知道是否有任何其他变量或函数可以返回错误对象的名称。
我想要这样的东西
exception
when others then
begin
if SQLCODE = -20010
then dbms_output.put_line('The Value Too Large in the field ' || GetObjectNameError);
end if;
end;
更新
使用托尼的例子
CREATE TABLE t (v varchar2(3));
COMMENT ON TABLE t IS 'my table description';
COMMENT ON COLUMN t.v IS 'my column description';
insert into t values ('xxxx');
实际上引发了这个错误 *
ERROR at line 1:
ORA-12899: value too large for column "MYSCHEMA"."T"."V" (actual: 4, maximum: 3)
我想展示这样的东西
ORA-12899: value too large for column "my column description" in table "my table description" (actual: 4, maximum: 3)
提前致谢。