以前写过一篇文章,介绍删除基于数据库链的物化视图时,要确保数据库链的存在,否则会导致物化视图注册信息无法清除。详细信息可以参考
这里讨论的删除物化视图和删除物化视图日志的顺序。
首先强调一下,删除物化视图并不意味着要删除物化视图日志。因为物化视图日志可以同时支持多个物化视图的刷新,如果物化视图日志被删除,那么所有基于这个物化视图日志的物化视图无法再进行快速刷新。
这里讨论的情况是,仅有一个快速刷新的物化视图的情况,或者所有快速刷新的物化视图都准备重新建立的情况。
在这种前提下,先删除物化视图日志然后再删除物化视图。
还是通过一个例子来说明这种情况:
SQL> CREATE TABLE T AS SELECT ROWNUM ID, A.* FROM DBA_OBJECTS A WHERE 1 = 2;
表已创建。
SQL> CREATE TABLE T1 AS SELECT ROWNUM ID, A.* FROM DBA_OBJECTS A WHERE 1 = 2;
表已创建。
SQL> ALTER TABLE T ADD PRIMARY KEY (ID);
表已更改。
SQL> ALTER TABLE T1 ADD PRIMARY KEY (ID);
表已更改。
SQL> CREATE MATERIALIZED VIEW LOG ON T;
实体化视图日志已创建。
SQL> CREATE MATERIALIZED VIEW LOG ON T1;
实体化视图日志已创建。
SQL> CREATE MATERIALIZED VIEW MV_T REFRESH FAST AS SELECT *