功能需求:
往oracle数据库A表插入一条记录的往SQLSERVER数据库表B插入记录.通过A表的触发器实现. 应用oracle的DATALINK与sqlserver异构连接已经成功.通过SQL语句直接往SQLSERVER数据库B表插入数据,都很正常.
insert into bj_ysd_remote@dblink remote
value(:new.x1,:new.x2,……) 问题:把上述语句写入A表的触发器中,再往A表插入记录可以执行成功,但是没有往SQLSERVER表B插入记录,再对表A操作时会报错:"ora-01591 锁定已被有问题的分配事物处理4.28.20989挂起"
往oracle数据库A表插入一条记录的往SQLSERVER数据库表B插入记录.通过A表的触发器实现. 应用oracle的DATALINK与sqlserver异构连接已经成功.通过SQL语句直接往SQLSERVER数据库B表插入数据,都很正常.
insert into bj_ysd_remote@dblink remote
value(:new.x1,:new.x2,……) 问题:把上述语句写入A表的触发器中,再往A表插入记录可以执行成功,但是没有往SQLSERVER表B插入记录,再对表A操作时会报错:"ora-01591 锁定已被有问题的分配事物处理4.28.20989挂起"
检查是否commit了,必要的时候看看db_link是否通畅
select sysdate from dual@db_link;
我怀疑是触发器的自动事件提交没有成功,所以原始表处于被锁定挂起状态,但是原始表的数据又插入成功,没道理。 看来还是oracel和sqlserver异构的问题没弄明白。