我是oracle sql的新手
我创建了一个像
这样的示例表Create table tab1(
name varchar2(15) primary key,ID number
);
我已经在上面创建了mlog;
create materialized view log on tab1 with primary key;
现在我创建了mview:
Create materialized view mv1 refresh fast as select * from tab1;
现在我在tab1中插入了几个值;
insert into tab1 values('value',1);
我已经看到表tab1和mlog实际上正在更新
select * from tab1;
select * from mlog$_tab1;
这些查询显示mlog和table tab1实际上正在更新
但是当我查询时
select * from mv1;
不显示任何行。
更新
在网上寻找我必须使用commit scn including new values
进行自动快速刷新的地方。
所以我将查询更改为
create materialized view log on tab1 with primary key,commit scn including new values;
当我尝试这个查询时,我发出错误说
ORA-00406: COMPATIBLE parameter needs to be 11.2.0.0.0 or greater
ORA-00722: Feature "MV log with commit scn".
所以我在创建mview时删除了commit scn
并在提交时添加了快速刷新。
并承诺交易。
最终查询:
create materialized view log on tab1 with primary key including new values;
Create materialized view mv1 refresh fast on commit as select * from tab1;
insert into tab1 values('value',1);
commit;
现在每件事似乎都运转正常。 但是,有人可以指出在创建mlog时使用commit scn会出现什么问题?
谢谢..