【发布时间】:2025-12-22 22:40:16
【问题描述】:
我有一个数据库包 MAINLOAD,它是从架构 A 导入到架构 B。
在模式 A 中,此对象有效。在模式 B 中,此对象因 DB Link 错误而失效。
此对象在导入后出现在DBA_OBJECTS 表中,但其错误消息未出现在DBA_ERRORS 表中。
现在,当我尝试通过发出命令:ALTER PACKAGE MAINLOAD COMPILE BODY 来编译这个对象时,由于 DBLink 错误,这个包编译失败,但它仍然没有出现在DBA_ERRORS 表下。
但是,当我通过SQLDEVELOPER 工具/任何其他开发工具手动编译该对象时,该对象开始出现在DBA_ERRORS 表下。
我也尝试通过发出命令 - DBMS_UTILITY.COMPILE_SCHEMA,但没有运气。
我有一个实用程序,它编译 DBA_OBJECTS 表下存在的所有无效对象,然后使用 DBA_ERRORS 表在屏幕上打印错误消息。
我无法理解为什么这两个过程都存在这种差异。
另外,想知道是否有任何选项可以在不手动编译的情况下填充此 DBA_ERRORS 表。
非常感谢任何帮助。
感谢和问候, 阿希斯·萨海
【问题讨论】: