oracle物化视图建立触发器,物化视图上用触发器(用于同步)

Bertha 。 2023-01-19 04:50 465阅读 0赞

作用:由数据源的主表与明细表在目标库进行合并

1,在数据源上建两表,一主,一明细 ,在目标库建引两表的合并表

-- Create table

create table TT_ACC_LEVYCODE主表

(

SESSION_ID NUMBER(10) not null,

LEVYCODE VARCHAR2(11),

KTZC_SESSION_ID VARCHAR2(7)

);

alter table TT_ACC_LEVYCODE

add constraint FKDD primary key (SESSION_ID)

using index

tablespace ZHENGGUAN

pctfree 10

initrans 2

maxtrans 255

storage

(

initial 64K

minextents 1

maxextents unlimited

);

-- Create table明细表

create table TT_ACC_LEVYDETAILCODE

(

DEATID_ID VARCHAR2(10) not null,

SESSION_ID NUMBER(10),

DETAIL_NAME VARCHAR2(50)

)

tablespace ZHENGGUAN

pctfree 10

initrans 1

maxtrans 255

storage

(

initial 64K

minextents 1

maxextents unlimited

);

-- Create/Recreate primary, unique and foreign key constraints

alter table TT_ACC_LEVYDETAILCODE

add constraint RFGDFGDF primary key (DEATID_ID)

using index

tablespace ZHENGGUAN

pctfree 10

initrans 2

maxtrans 255

storage

(

initial 64K

minextents 1

maxextents unlimited

);

alter table TT_ACC_LEVYDETAILCODE

add constraint DDDEEEEE foreign key (SESSION_ID)

references TT_ACC_LEVYCODE (SESSION_ID);

-- Create table

create table TT_ACC_LEVYCODEINFO

(

SESSION_ID NUMBER(10) not null,

LEVYCODE VARCHAR2(11),

KTZC_SESSION_ID VARCHAR2(7),

DEATID_ID VARCHAR2(10) not null,

DETAIL_NAME VARCHAR2(50)

)

tablespace OWB_TG

pctfree 10

initrans 1

maxtrans 255

storage

(

initial 80K

minextents 1

maxextents unlimited

);

-- Grant/Revoke object privileges

grant select, insert, update, delete on TT_ACC_LEVYCODEINFO to STAGING;—注:要把这些权限赋予中转用户

在数据源上建物化视图log

create materialized view log on tt_acc_levycode tablespace zhengguan_sn_log;

create materialized view log on tt_acc_levydetailcode tablespace zhengguan_sn_log;

-——————

2,在中转区建立两源表的物化视图

create materialized view tt_acc_levycode tablespace staging refresh fast as

select t.*

from t;

create materialized view tt_acc_levydetailcode tablespace staging refresh fast as

select t.*

from t;

--LNK27.REGRESS.RDBMS.DEV.US.ORACLE.COM 为中转区到数据源的dblink

3,在中转用户建立触发器

CREATE OR REPLACE TRIGGER WB_tr_acc_levydetailcode

after INSERT OR UPDATE

ON tt_acc_levydetailcode

FOR EACH ROW

DECLARE

v_SESSION_ID NUMBER(10) ;

v_LEVYCODE VARCHAR2(11);

v_KTZC_SESSION_ID VARCHAR2(7);

BEGIN

if INSERTING then

select t.session_id,t.levycode,t.ktzc_session_id

into v_session_id,v_levycode,v_ktzc_session_id

from tt_acc_levycode t

where t.session_id =:new.session_id;

insert into owb_tg.tt_acc_levycodeinfo values(v_SESSION_ID,v_LEVYCODE,v_KTZC_SESSION_ID,:new.DEATID_ID,:new.DETAIL_NAME);

end if;

if UPDATING then

update owb_tg.tt_acc_levycodeinfo t set t.detail_name=:new.detail_name

where t.deatid_id=:new.deatid_id;

end if;

END;

手工刷新视图

execute dbms_mview.refresh(‘tt_acc_levycode’,’f’);

execute dbms_mview.refresh(‘tt_acc_levydetailcode’,’f’);

这样执行可保证先后,若全写一起则并发执行

execute dbms_mview.refresh(‘tt_acc_levycode,tt_acc_levydetailcode’,’f’);

发表评论

表情:
评论列表 (有 0 条评论,465人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Oracle物化视图

    概述: > 物化视图是一种特殊的物理表,是将SQL中的查询结果提前抽取出来,存储在硬盘上,相当于再查的时候只查询了一张表,大大提高了读取效率 物化视图的类型: O

    相关 Oracle-物化视图

    Oracle之物化视图 物化视图是一种特殊的物理表,“物化”(Materialized)视图是相对普通视图而言的。普通视图是虚拟表,应用的局限性大,任何对视图的查询,Orac

    相关 Oracle 物化视图

      1     简介 物化视图是包括一个查询结果的数据库对像,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表。物化视图存储基于远程表的数据,也可以称为快照

    相关 Oracle 物化视图

    一、[物化视图][Link 1]的一般用法物化视图是一种特殊的物理表,“物化”(Materialized)视图是相对普通视图而言的。普通视图是虚拟表,应用的局限性大,任何对视图

    相关 oracle 物化视图

    我们如果遇到需要从其它系统的数据库中取数据进行统计分析的问题,可疑选择使用[ORACLE][]的ODI工具进行抽数,但是对方提供的数据库用户下没有任何对象,只是有查询所有表的权