数据同步方案
1. 物化视图(MATERIALIZED VIEW)
CREATE MATERIALIZED VIEW TEST_MATERIAL_VIEW(物化视图名)
REFRESH FORCE ON DEMAND
START WITH
TO_DATE('02-11-2012 14:24:59', 'DD-MM-YYYY HH24:MI:SS')(开始执行时间)
NEXT SYSDATE+1/1440(执行时间间隔)
AS
SELECT ID, NAME, ADDR FROM TESTTEST;(物化视图查询语句)
备注:本示例表示,每隔一分钟查询一次TESTTEST表中的相关字段数据,显示在物化视图TEST_MATERIAL_VIEW中,也就是说TEST_MATERIAL_VIEW中的数据更新频率是1分钟
2. 存储过程(PROCEDURE)+任务调度(JOB)
【1】PROCEDURE
CREATE OR REPLACE PROCEDURE P_HANDLEB2CCOMMAND(存储过程名)
IS
BEGIN
MERGE INTO TEST_PRO W(要更新的表格)
USING TESTTEST WW(关联数据或者表格)
ON (W.ID=WW.ID)(关联条件)
WHEN MATCHED THEN UPDATE(如果满足条件更新)
SET W.NAME=WW.NAME,W.ADDR=WW.ADDR WHERE W.ID=WW.ID
WHEN NOT MATCHED THEN INSERT (如果不满足条件插入)
VALUES
(WW.ID,WW.NAME,WW.ADDR);
END;
【2】JOB
BEGIN
SYS.DBMS_JOB.SUBMIT(JOB => :JOB,
WHAT => 'P_HANDLEB2CCOMMAND;',
NEXT_DATE => TO_DATE('02-11-2012 14:33:24', 'DD-MM-YYYY HH24:MI:SS'),
INTERVAL => 'SYSDATE+1/1440');
COMMIT;
END;
备注:本示例表示,每隔一分钟定时任务执行一次存储过程,根据ID判断要更新的表TEST_PRO是否已经存在相应数据,如果存在则按照需求更新,不存在则插入数据,保持表格TEST_PRO为增量数据