我有一个数据库包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
表。
非常感谢任何帮助。
谢谢&问候, Ashis Sahay
答案 0 :(得分:0)
我假设您从SqlDeveloper执行ALTER PACKAGE MAINLOAD COMPILE BODY
。
执行此命令后,SqlDeveloper最有可能在连接上发出提交或回滚,因此数据消失。尝试从sqlplus做同样的事情,你会看到。