ITPub博客

首页 > 数据库 > Oracle > Oracle Materialized view

Oracle Materialized view

Oracle 作者:419088217 时间:2017-06-16 13:55:25 0 删除 编辑

Third party system has one table, we want to fetch new changed data into one table.

It means that the new table should contain all added data or deleted data or updated data.

 

1.       Source system

Create table  xx_test

Create materialized log

Example:

CREATE MATERIALIZED VIEW LOG ON ORG_BASEINFO
with rowid including new values

 

 drop materialized view log on xx_test

2.      


Target system

Create database link  target_link_to_source

example:
create database link LINK_I1
  connect to apps identified by apps
  using '   (DESCRIPTION =
    (ADDRESS_LIST =
      (FAILOVER = yes)
      (LOAD_BALANCE = yes)
      (ADDRESS = (PROTOCOL = TCP)(HOST = usmtnnpdinfdr20.dev.emrsn.org)(PORT = 35501))
      (ADDRESS = (PROTOCOL = TCP)(HOST = usmtnnpdinfdr21.dev.emrsn.org)(PORT = 35501))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = onidai1_OLTP)
    )
  )
';

 

Drop materialized  view  xx_test_mv

 

         create materialized view xx_test_mv refresh fast on DEMAND  with rowid as

       select id from xx_test@ target_link_to_source

 

if you want to sync and refresh materialized view data, please use

BEGIN dbms_mview.refresh('MV_ORG_MOREINFO','F');END;

You also can create a job in Oracle

declare
job_id number;
begin
DBMS_JOB.submit(job =>job_id,what => 'begin dbms_mview.refresh(''MV_ORG_BASEINFO'',''F'');dbms_mview.refresh(''MV_ORG_MOREINFO'',''F'');end;',next_date => sysdate,interval => 'sysdate + 10.0/(60*60*24)');
COMMIT;
end;

 

 

common question and checking points:

1.       This is log table in the source database MLOG$_table_name

2.       dba_mview_logs   --checking all view log

3.       user_mviews –checing all materialized view

4.       please ensure you should have  select privilege for source table and source log table.


issue:

it is not working, it shows below error
CREATE MATERIALIZED VIEW APPS.XX_TEST_MV
REFRESH FAST ON DEMAND
WITH ROWID
AS
SELECT ID, NAME FROM XX_TEST@LINK_I1;

it is not working, it shows below error
CREATE MATERIALIZED VIEW APPS.XX_TEST_MV_TEST
REFRESH FORCE ON DEMAND
WITH ROWID
AS
SELECT ID, NAME FROM ERP.XX_TEST@PLM.WORLD

-- no idea, why only this one is working
CREATE MATERIALIZED VIEW XX_TEST_MV_TEST
REFRESH FORCE ON DEMAND
AS SELECT ID, NAME FROM ERP.XX_TEST@PLM.WORLD;


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/13975809/viewspace-2140838/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: Oracle AP
请登录后发表评论 登录
全部评论

注册时间:2014-12-25

  • 博文量
    63
  • 访问量
    52243