Erp100论坛's Archiver

xiangzhao 发表于 2008-7-12 21:43

怎么通过实体化试图同步已经存在的两个表的数据

服务器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存在时请问应该怎么写?

xiangzhao 发表于 2008-7-12 21:43

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]

Powered by Discuz! Archiver 7.0.0  © 2001-2007 Comsenz Inc.