如何获得在Oracle Forms 6i中触发错误的程序包名称

问题描述 投票:1回答:2

我在某些oracle表单6i表单上提供支持,并且出现数值或值错误。但是,该过程非常漫长,并且会沿表单中的许多程序包导航。我所能做的就是在整个过程中放置​​消息(当然,只有我自己才能看到),以查看消息的确切来源,但这确实很长。因此,我想知道是否可以使用DBMS_UTILITY.format_error_backtrace之类的东西,但要在客户端使用,并获取产生错误的软件包名称。我目前使用:

exception when others then functionThatPrintsMe(sqlerrm);

但是这不能给我足够的信息。

oracle oracleforms
2个回答
1
投票

DBMS_ERROR_TEXT返回递归错误的整个序列

因此您应该从中获取所有必需的信息

善用

exception when others then functionThatPrintsMe(DBMS_ERROR_TEXT);

有关Oracle 6i表单的更多信息,您可以参考

http://www.oracle.com/technetwork/documentation/6i-forms-084462.html


0
投票

在表单级别的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 ;
© www.soinside.com 2019 - 2024. All rights reserved.