各位好,我现在有两个数据库,在不同的网段,在存储过程中用INSERT语句向两个数据库中写入数据。
     
    SQL1:insert value............   数据库1
   SQL2:insert value............   数据库2   现在可能由于网络的原因,向数据库1中写入数据时不成功,按理说如果SQL1 不成功的话,SQL2也应该回滚才对,
   现在的情况是,数据库1中没有数据,而数据库2中插入成功了。
     
       有谁知道是什么原因吗?
       

解决方案 »

  1.   

    你在一个会话中执行的吗?用DBLINK?
      

  2.   

    就是一个存储过程啊,和DBLINK没关系吧?我们在数据库中为另外一个数据库的表建一个同义词,就和自己数据库中的表没多大差别了。
      

  3.   

    把这两个语句放在同一事务中执行,再commit
      

  4.   

        SQL1:insert value............  数据库1 
      SQL2:insert value............  数据库2 如果出错了,应该是rollback才对,但是你依旧commit了,所以才会出现你说的情况。