我在某些oracle表单6i表单上提供支持,并且出现数值或值错误。但是,该过程非常漫长,并且会沿表单中的许多程序包导航。我所能做的就是在整个过程中放置消息(当然,只有我自己才能看到),以查看消息的确切来源,但这确实很长。因此,我想知道是否可以使用DBMS_UTILITY.format_error_backtrace
之类的东西,但要在客户端使用,并获取产生错误的软件包名称。我目前使用:
exception when others then functionThatPrintsMe(sqlerrm);
但是这不能给我足够的信息。
DBMS_ERROR_TEXT返回递归错误的整个序列
因此您应该从中获取所有必需的信息
善用
exception when others then functionThatPrintsMe(DBMS_ERROR_TEXT);
有关Oracle 6i表单的更多信息,您可以参考
http://www.oracle.com/technetwork/documentation/6i-forms-084462.html
在表单级别的ON-ERROR TRIGGER。添加这些行将解决您的问题
--form level error display
message(ERROR_type||'-'||TO_CHAR(message_code)||': '||ERROR_text); message(' ');
--Database level error display
if DBMS_ERROR_TEXT is not null then
message(DBMS_ERROR_TEXT );message(' ');
end if ;