错误 ORA-04062

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

我目前正在使用 Oracle Forms & Reports 6i 上的一个应用程序,该应用程序具有一个包含包的 10g 数据库,该应用程序有超过 900 个 .fmb/fmx 文件和超过 700 个 .rep/rdf 文件。我已将应用程序复制到另一台计算机,现在它在大多数表格上都给我这些错误:

FRM-40735: XXXXXX trigger raised unhandled exception ORA-04062. 

ORA-04062 signature of package BLABLA has been changed

我发现我必须重新编译表格才能工作,而且确实如此,但正如我所说,我有很多表格,每次更换计算机时重新编译所有表格和包非常耗时。

问题从何而来?我能做些什么来解决这个问题?

oracle oracleforms oraclereports
2个回答
0
投票

ORA-04062错误发生在Form使用的数据库包的spec发生变化时。将表单从一个客户端移动到另一个客户端不会导致这种情况,除非目标数据库也发生了变化。

部分问题是您使用的是真正版本的 Forms。但我想升级不是一种选择(因为你需要客户端/服务器版本)。

你需要编译所有的表格吗?有多少表单使用受影响的包?如果你必须编译很多表格,最简单的事情就是写一个

.bat
脚本来编译它们。


0
投票

当远程数据库会话通过到数据库服务器的数据库链接调用 PL/SQL 函数、过程或包时,这也是 PL/SQL 的一个问题,并且服务器上的代码具有比客户端上次调用时更新的时间戳它。

remote_dependencies_mode 参数默认检查存储代码的timestamp。可以改成signature来避免ORA-4062错误

这可能不是您在实例级别更改的内容。

我在 PL/SQL 中使用过的东西:

execute immediate q'[alter session set remote_dependencies_mode = 'SIGNATURE']';

这可能适用于也可能不适用于表格。

如果一切都失败了,如果这是您经常需要处理的问题,可以通过登录触发器在会话中设置它。

© www.soinside.com 2019 - 2024. All rights reserved.