两台数据库服务器  A 和 B  .A中的A1表  和 B中的 B1 表.A1中插入一条记录, 触发器会在 B1中也插入一条记录.两台机器正常通讯的情况下是没问题的.但是,如果网络断开了. A就会报错了.请教各位大侠  我不想让他报错.应该怎么做?

解决方案 »

  1.   

    create or replace trigger ...
    ...
    beginexception when others then 
      null;
    end;
      

  2.   

    当向A1中插入一条记录的时候, 触发器会在 B1中也插入一条记录,但是当网络断开时,触发器就不能对B1进行操作了,即级联更改失败,
    所以报错,能不能加一段检测网络是否存在的异常处理代码,当网络断开时,则不对B1进行插入?
      

  3.   

    建议LZ不要这么干,即使如4楼所言,不报错了但B表中的数据仍然没有被插入,我想这会造成数据一致性方面的问题。如果实在想那么干,那就请在4楼代码的基础上加以下红色字体的代码:
    create or replace trigger ... 
    ... 
    begin exception when others then 
      null;
      insert into TABLE_B_BACKUP ...
    end;即要在A服务器上建一个B表的备份TABLE_B_BACKUP,在通讯不成功时,先将数据插入到TABLE_B_BACKUP中,待到可以通讯时,再将TABLE_B_BACKUP中的数据插入到B表中。还是兄弟最前面的那句话,最好不要这样做。