物化视图、任务调度数据同步

数据同步方案

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)

1PROCEDURE

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;

2JOB

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为增量数据

猜你喜欢

转载自edwardcoo.iteye.com/blog/1714501