与DBLINK有关的ORA-02050/ORA-02051错误

今天在插入通过DBLINK取得的数据到本地库时,insert正常,但commit就碰到ORA-02050/ORA-02051错误,类似如下:
ORA-02050: 事务处理 9.17.23660 已回退, 某些远程数据库可能有问题
ORA-02051: 同一事务处理中的另一会话或分支失败或已完成

通过一番搜索,最终确定问题在本地库的表上存在MV LOG所致,于是想到通过建立全局临时表(create global temporary table……)的方式来处理问题,但实践证明这是不行的:
create global temporary table xx as select * from x where 1=2;
insert into xx select * from x@remote;
insert into x select * from xx;
--以上三步都成功,并且都能插入正确的记录数
commit;
--ORA-02050/ORA-02051错误再度出现

于是,只好老老实实用普通表
create table xx as select * from x where 1=2;
insert into xx select * from x@remote;
insert into x select * from xx;
--以上三步都成功,并且都能插入正确的记录数
commit;
--这次这步也成功了
delete from xx;
commit;
--已成功删除普通临时表里的数据。

最后,问题搞定。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29867/viewspace-775178/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29867/viewspace-775178/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值