实验一:
MATERIALIZED VIEW LOG表"MLOG$_基表"内容被删除
当基于该基表的所有物化视图(一个或多个)都在基表发生DML后做完刷新后,"MLOG$_基表"的内容会被清楚:
1、 创建一个测试用的表T
create table t ( a int , b varchar2 ( 50 ) , constraint pk_t primary key ( a )) ;
2、 创建对应的MV名为MVT
create materialized view mvt as select * from t ;
3、 往表里面插入一些个数据
insert into t select rownum , object_name from all_objects ;
commit ;
4、 下面对mview做一次刷新看看
exec dbms_mview . refresh ( ' mvt ' ) ;
5、 现在能看到mv里面已经有数据了
select count ( * ) from mvt ;
6、 现在表T上面创建MView Log
create materialized view log on t ;
7、 对表T数据进行一些修改
update t set b='test1' where a=1093;
8、查看日志表内容:
9、 接下来就是进行快速刷新了
exec dbms_mview . refresh ( ' mvt ' , ' F ' ) ;
做刷新时报错ORA-12034: "SCOTT"."T" 上的实体化视图日志比上次刷新后的内容新
将物化视图DROP后重建即可
10、再次查询MLOG$_T
select * from mlog$_t;
发现结果集为空。
MATERIALIZED VIEW LOG表"MLOG$_基表"内容被删除
当基于该基表的所有物化视图(一个或多个)都在基表发生DML后做完刷新后,"MLOG$_基表"的内容会被清楚:
1、 创建一个测试用的表T
create table t ( a int , b varchar2 ( 50 ) , constraint pk_t primary key ( a )) ;
2、 创建对应的MV名为MVT
create materialized view mvt as select * from t ;
3、 往表里面插入一些个数据
insert into t select rownum , object_name from all_objects ;
commit ;
4、 下面对mview做一次刷新看看
exec dbms_mview . refresh ( ' mvt ' ) ;
5、 现在能看到mv里面已经有数据了
select count ( * ) from mvt ;
6、 现在表T上面创建MView Log
create materialized view log on t ;
7、 对表T数据进行一些修改
update t set b='test1' where a=1093;
8、查看日志表内容:

9、 接下来就是进行快速刷新了
exec dbms_mview . refresh ( ' mvt ' , ' F ' ) ;
做刷新时报错ORA-12034: "SCOTT"."T" 上的实体化视图日志比上次刷新后的内容新
将物化视图DROP后重建即可
10、再次查询MLOG$_T
select * from mlog$_t;
发现结果集为空。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26521853/viewspace-1277245/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26521853/viewspace-1277245/