Oracle数据库A和数据库B中各有个表结构完全相同,我是想通过触发器当A数据库的表更新时让B数据库中相同的表做同步更新,该如何实现呢?

解决方案 »

  1.   

    1、 
    先建立DATABASE LINK于A上:
    CREATE DATABASE LINK A_2_B
       CONNECT TO  用户名 IDENTIFIED BY 密码
       USING B实例名2、使用如下方法访问B的表
    select * from table1@A_2_B
      

  2.   

    建立个dblink,直接在trigger中就可以实现了
      

  3.   

    dblink创建语法:
    create database link linkname
    connect to user
    identified by usrpwd 
    using 'demona';其中
    --demona为用net8 easy config创建的连接字符串
    目的方数据库的init.ora文件中的global_names设为false
    重新启动数据库设置才能生效
    或者用sys用户执行
    alter system set global_names=false;创建trigger的例子:
    create or replace trigger trg_demo 
    before update on tbname for each row
    begin
     update tbname@linkname set col1=:new.col1,col2=:new.col2 ... where id=:new.id;
    end trg_demo;
    /
      

  4.   

    1.先建立1个DBLINK
    2.在每个表上建立TRIGGER,而且TRIGGER要捕捉INSESET,UPDATE,DELETE,而且针对着三个动作做相应的INSERT,UPDATE,DELETE。
      

  5.   

    to bzszp(SongZip) :
    请问您给的触发器例子中
    create or replace trigger trg_demo 
    before update on tbname for each row
    begin
     update tbname@linkname set col1,col2=:new.col2 ... where id=:new.id;
    end trg_demo;
    /col1是不是代表B数据库的一个字段,:new.col1 是不是A数据库的表的相同字段?
      

  6.   

    以下这是我的测试表,能否帮我针对这个例子写个呢,谢谢create table linktest(
    name varchar2(20),
    sex  char(6),
    address varchar2(100)
    );
      

  7.   

    create or replace trigger trg_up_data 
    before update on linktest for each row
    begin
     update linktest@linkname set name=:new.name,sex=:new.sex,address=:new.address where name=:new.name;
    end trg_demo;
    /
      

  8.   

    我往A数据库里面的linktest插入了记录,怎么B数据库的linktest表没接收到任何数据,是不是要让trg_up_data出发器定时执行?怎么能够自动执行吗?
      

  9.   

    提交了,可是B数据库里面还是没有,我在A、B数据库里面都创建了linktest表,不知道怎么回事?
      

  10.   

    是不是触发器里面begin后用insert才能插入到B数据库的表而不是update
      

  11.   

    这个是我创建的触发器,请看看是否正确?create or replace trigger trg_up_data
    before update on linktest for each row
    begin
     update linktest@OFFICECN_CMS set name=:new.name,sex=:new.sex,address=:new.address where name=:new.name;
    end trg_demo;
    /这个是DBLINK
    create database link OFFICECN_CMS
    connect to store
    identified by store
    using 'OFFICECN_2_CMS';
      

  12.   

    to bzszp(SongZip) ,你们是这样做两数据库同步的吗,那如果被控数据库中网络出了故障,那段时间的数据如何处理呢