我在本地系统上运行数据库,并通过家庭网络中的笔记本电脑访问它。今天偶然查看了SYS对象的状态,发现DBMS_METADATA、DATA_PUMP包都失效了。我也无法运行 EXPDP 实用程序。有关如何重新编译此对象并更正状态的任何想法?
谢谢您的帮助!
好吧,我终于想通了-尽管这有点蛮力的方法。在管理工具中,我不得不运行 catalog.sql 和 catproc.sql——它们重新创建了 sys 对象。
这之后 utlrp.sql 解决了我所有的问题,现在所有对象都成功编译了。
sqlplus / as sysdba @?/rdbms/admin/utlrp
应该重新编译所有无效对象。剩下的问题是:它们为什么/如何/何时变得无效,它们曾经有效吗?你检查 dba_registry 了吗?
select * from dba_registry;
通常所有组件都应该是有效的。