当前位置:操作系统 > Unix/Linux >>

物化视图无法删除的解决方法

物化视图无法删除的解决方法
 
        刚开发组的兄弟跟我反馈,物化视图无法删除,drop table mv_test是报必须删除物化视图mv_test。以前碰到过这种情况,于是要他执行drop MATERIALIZED VIEW  mv_test ,虽然执行成功,但是在user_object 还是查到该物化视图,只是状态为invalid。
 
        在网上找了下资料,意见是用on prebuilt table的方式重建物化视图,于是执行下面的语句:
 
[sql] 
CREATE MATERIALIZED VIEW MV_TEST  
on prebuilt table  
REFRESH FORCE ON DEMAND  
START WITH TO_DATE('28-08-2013 23:30:00', 'DD-MM-YYYY HH24:MI:SS') NEXT SYSDATE+1      
WITH ROWID   
AS  
SELECT A.FNO  
  FROM SECCOND A, COMMON COMM  
 WHERE A.FID = COMM.FID;  

 

     重建不成功,报mv_test这个对象已存在。在pl/sql  developer的MATERIALIZED VIEW中可以看到mv_test,有报错的标记,找不到定义。
      1. 于是用SYS的账号登陆,在obj$中找到物化视图并删除(这里大家一定要注意,删除之前一定要备份哦,要保证每一步的操作是可逆的)。
 
      2. 执行上面重建的语句。
 
      3. 
drop MATERIALIZED VIEW   mv_test;    

          drop table  mv_test;

 

 
      搞定!
 
   
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,