创建任何物化视图都会包含的列:

snaptime$$:用于表示刷新时间。 
dmltype$$:用于表示dml操作类型,i表示insert,d表示delete,u表示update。 
old_new$$:用于表示这个值是新值还是旧值。n(ew)表示新值,o(ld)表示旧值,u表示update操作。 
change_vector$$表示修改矢量,用来表示被修改的是哪个或哪几个字段。 如果with后面跟了primary key,则物化视图日志中会包含主键列。 如果with后面跟了rowid,则物化视图日志中会包含: 
m_row$$:用来存储发生变化的记录的rowid。 如果with后面跟了object id,则物化视图日志中会包含:
sys_nc_oid$:用来记录每个变化对象的对象id。 如果with后面跟了sequence,则物化视图日子中会包含:
sequence$$:给每个操作一个sequence号,从而保证刷新时按照顺序进行刷新。 如果with后面跟了一个或多个column名称,则物化视图日志中会包含这些列。 -先删除表再建立新的MV -

查询物化视图更新时间 

SELECT mview_name, last_refresh_date, fullrefreshtim, increfreshtim FROM dba_mview_analysis;
exec dbms_mview.refresh('MV_T1_PK','c'); 
BEGIN DBMS_MVIEW.REFRESH ( list => 'A3_GUANLI_DATE', Method =>'COMPLETE', refresh_after_errors => True); end;

在SOURCE DB 上建立日志 

create materialized view log on HR_PAY_TYPE tablespace USERS with primary key including new values; 
create materialized view log on test_rowid with rowid, sequence (id, name) including new values ; 
create materialized view log on test_objid with object id; 
create materialized view log on test_sq tablespace ttts with sequence;

依据sequence创建物化视图日志

create materialized view log on test_sq with sequence (id, name,num) including new values;

包含基础表的所有列 

create materialized view log on HR_CHANGE_SHIFT with rowid including new values; 
create materialized view HR_PERSONNEL_OUT refresh fast start with sysdate next sysdate +12/24 with rowid as select * from hcp.HR_PERSONNEL_OUT@LINKHCP; 
drop materialized view GL_SEGMENT_HIS_MV;

错误提示

--ORA-32401: "TT"."TEST_ROWID" 上的实体化视图日志没有新值 
alter materialized view log on test_rowid add including new values; 
--ORA-12033: 不能使用 "TT"."TEST_ROWID" 上实体化视图日志中的过滤器列 
alter materialized view log on test_rowid add (name); 
--ORA-12014: 表 'TEST_OBJID' 不包含主键约束条件 
alter table test_objid add constraint pk_test_objid primary key (id);
 --增加主键 
--ORA-23415: "TT"."TEST_OBJID" 的实体化视图日志不记录主键 
drop materialized view log on test_objid; 
create materialized view log on test_objid tablespace ttts with primary key including new values;