怎么通过实体化试图同步已经存在的两个表的数据
服务器1-->user1.table1(创建了并且有数据)服务器2-->user2.table2(创建了并且有数据)
目的:把user1.table1的数据同步到user2.table2中
在user1下执行:
CREATE MATERIALIZED VIEW LOG ON table1;
在user2下执行:
create public database link dblink1 connect to user1 identified by user1 using 'orcl';
(dblink1测试通过,在服务器2的user2用户下能访问服务器1中的user1.table1的数据)
CREATE MATERIALIZED VIEW table1 AS SELECT * FROM table1@dblink1;
执行时提示错误ORA-00955:名称已由现有对象使用
(如果我把user2.table2表删除,创建实体化试图成功,数据同步也可以)
我知道是创建实体化试图语句写的不对,当table2存在时请问应该怎么写? CREATE MATERIALIZED VIEW table2
ON PREBUILD TABLE --将物化视图建立在一个已经存在的表上
AS SELECT * FROM table1@dblink1;
更详细的写法
CREATE MATERIALIZED VIEW table2
ON PREBUILT TABLE --将物化视图建立在一个已经存在的表上
REFRESH FORCE --如果可以快速刷新则进行快速刷新,否则完全刷新
ON DEMAND --按照指定方式刷新
START WITH SYSDATE+1/24*60 --1分钟之后进行一次刷新
NEXT SYSDATE+10/24*60 --刷新时间间隔为10分钟
AS SELECT * FROM table1@dblink1;
页:
[1]