有两台机器A 和 B.
A机器和B机器有结构相同的表TAB1bh    zp1    zp2   zp3
=========================
1   <blob> <blob> <blob>
2   <blob> <blob> <blob>在机器A的TAB1上建了一个触发器 trigger1,
A机器上建有一个连接B机器DATA LINK名为BBBB
使用行级触发,insert时就向 b机器写入同样的记录.如何将该表中的记录写入B机器的表中.试了一些方法,不成功!

解决方案 »

  1.   

    你试试这个:1. create two test tablescreate table clob_source(idx number(3), content clob);create table clob_target(idx number(3), content clob);
    2. create procedure
    create or replace procedure p_clob(p_idx in number) as
        l_clob     clob;
        l_tmp_clob clob;
    begin
        select content into l_tmp_clob from clob_source@dblink where idx = p_idx;    insert into clob_target
        values
            (p_idx, empty_clob())
        returning content into l_clob;
        dbms_lob.write(l_clob, length(l_tmp_clob), 1, l_tmp_clob);
    end;
      

  2.   

    http://dbaforums.org/oracle/index.php?showtopic=4790
      

  3.   

    不会写。不过个人提醒。
    你有两台机,如果做RAC的话,不建议使用触发器,容易独享锁死表。
    而其,只有触发结束了,一次INSERT才能结束,你的都是大对象,太浪费时间。
      

  4.   


    可以考虑这个,用物化视图!一般生产环境的时候,dblink的方式,我们都避免触发器。