您的位置:首页 > 其它

物化视图刷新错误--"SYS.DBMS_SNAPSHOT" has errors

2012-07-25 18:49 876 查看
一直发现有一个库中物化视图刷新出错:

ORA-04063: ORA-04063: package body "SYS.DBMS_SNAPSHOT" has errors

ORA-06508: PL/SQL: could not find program unit being called: "SYS.DBMS_SNAPSHOT"

ORA-06512: at "CENTER.SP_CHECK_VWPROD", line 16

ORA-06512: at line 1

has errors

物化视图的状态是valid,执行exec dbms_mveiw.refresh('mv_test')时就报如上错误。

开始以为是因为空间不够导致,因为之前有遇到空间不够,快照做不了,也是snapshot相关的东西报错。

首先看表空间是否满,发现未满;

然后看alert日志,发现无异常error,仅有刷物化视图的那个报错信息。

后来深入到sys.dbms_snapshot中查看,sqlplus / as sysdba登陆进去,先编译对象,发现有DBMS_SNAPSHOT、DEFTRANDEST等系列对象invalid.

于是一个一个深入去看,发现DBMS_SNAPSHOT 错误是因为DEFTRANDEST这个错误,而DEFTRANDEST错误又是因为_DEFTRANDEST这个错误,最后在_DEFTRANDEST中发现报表不存在,且表是**$***格式的表名,于是想问题可能出在数据字典上。

运行@catalog.sql @catproc.sql,完后用sys用户编译一些对象,OK,问题解决了,物化视图可以正常刷新了。

http://www.itpub.net/thread-524867-3-2.html 中24-26楼是我当时遇到此问题结的帖。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐