原帖由 qingyun 于 2010-6-21 15:44 发表 
在写pl/sql的时候,有个很重要的注意点;
比如:
begin
  update  某个sqlserver的表@dblink名字 .....;
  update 某个oracle的表...;
end;

这段pl/sql执行会报错:
错误信息是:
-----------------------------------------------------------------
执行失败:ORA-02054: 事务处理 2.12.27634 有问题
ORA-28500: 连接 ORACLE 到非 Oracle 系统时返回此信息: 
[Oracle][ODBC SQL Server Driver][SQL Server]对象名 'RECOVER.HS_TRANSACTION_LOG' 无效。
ORA-02063: 紧接着 2 lines (起自 dblink名字)
-----------------------------------------------------------------

然后你执行:
  select * from    某个sqlserver的表@dblink名字 
这个没问题;

再执行:
select * from  某个oracle的表

完了!结果提示:
执行失败:ORA-01591: 锁被有问题的分布式事务处理 2.12.27634 持有

这时候,你查询:
SELECT * FROM DBA_2PC_PENDING 
会发现,被锁的信息;

然后,你用
commit/rollback force '2.12.27634' ;  解锁;

当然这里的2.12.27634 是随机的。每次被锁,都是不同的值;

这个问题如何解决呢? 
begin
  update  某个sqlserver的表@dblink名字 .....; 
  commit; --非常重要;
  update 某个oracle的表...;
end;
这样就OK了,原因我觉得是这样的:oracle内部其实是两块事务,一个是针对sqlserver,一个针对自己的oracle;
所以必须把两端的事务独立下来;

下面这个写法也是OK的:

begin
  update  某个sqlserver的表@dblink名字 .....; 
update  某个sqlserver的表@dblink名字 .....; 
  commit; --非常重要;
  update 某个oracle的表...;
update 某个oracle的表...;
end;

终于把事务问题解决了,这个问题,如鲠在喉;困扰我半年了,如今客户的系统马上要正式使用;

我被迫又摸索了一把,终于搞定了:

解决方法:

1. 修改 initdg4msql.ora文件;

最后两行:
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
修改成

HS_FDS_RECOVERY_ACCOUNT=dbo
HS_FDS_RECOVERY_PWD=sa的密码;

这个是最简单的方法,当然也可以在mssql 建立recover用户,我觉得还是越简单越好;

2. 在sqlserver 数据库上运行:
DROP TABLE HS_TRANSACTION_LOG
go

CREATE TABLE HS_TRANSACTION_LOG(
  GLOBAL_TRAN_ID char (64) NOT NULL,
  TRAN_COMMENT char (255) NULL
)
go

grant all on HS_TRANSACTION_LOG to public
go

这样一切都搞定了;再也不用担心两个数据库间事务切换的问题了;

http://www.daizhicun.com

转载于:https://www.cnblogs.com/kingxiaozi/p/4832542.html

[Oracle][ODBC SQL Server Driver][SQL Server]对象名 'RECOVER.HS_TRANSACTION_LOG' 无效(转)相关推荐

  1. ORA-28500: 连接 ORACLE 到非 Oracle 系统时返回此信息(对象名 ‘RECOVER.HS_TRANSACTION_LOG‘ 无效,ERROR ORA-02054: 未决事务处理)

    今天在存储过程中通过dblink的方式从oracle中往sql server中的表插入数据时,报如下的错误: ERROR ORA-02054: 未决事务处理 15.29.1031 ORA-28500: ...

  2. [Microsoft][ODBC SQL Server Driver][SQL Server]String or binary data would be truncated.

    Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e57' [Microsoft][ODBC SQL Server Driver][SQL Ser ...

  3. 用eclipse连接数据库捕获java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]将截断字符串或二进制数据。

    用eclipse连接数据库捕获异常显示java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]将截断字符串或二进制数 ...

  4. [Microsoft][ODBC SQL Server Driver][SQL Server]数据库‘XXXXXX‘的事务日志已满。解决办法!

    下午上班,关务人员反应报关软件无法使用,截图过来看了下,报错提示如下: [Microsoft][ODBC SQL Server Driver][SQL Server]数据库'XXXXXX'的事务日志已 ...

  5. SQL数据库恢复后出现对象名无效(SQL Server备份还原时造成孤立用户的解决方案

    SQL数据库恢复后出现对象名无效(SQL Server备份还原时造成孤立用户的解决方案) 2011-04-18 09:38 以碰到这个烦人的问题,恢复的时候自带了个用户,但怎么也删除不掉,select ...

  6. SQL Server出现对象名和列名无效的解决方法

    SQL Server出现对象名和列名无效的解决方法 首先推一波自己的hexo博客 http://www.zhazhalin.top:88/ 想必很多朋友在用sql server在学习的时候会遇到过对象 ...

  7. Delphi东京版FireDAC连接MSSQL2000提示对象名 'SYS.DATABASES' 无效

    在Delphi 10.2.1 东京 版中,FireDAC默认不兼容MSSQL2000,会提示"[FireDAC][Phys][ODBC][Microsoft][ODBC SQL Server ...

  8. 服务器 消息 208,在MSSQL2000里边 对象名 'sys.servers' 无效 服务器: 消息 208,级别 16,状态 1,行 1...

    在MSSQL2000里面 对象名 'sys.servers' 无效 服务器: 消息 208,级别 16,状态 1,行 1 在MSSQL2000里面不支持该  sys.servers查看链接服务器信息 ...

  9. SqlException: 对象名 ‘dbo.clientAgent‘ 无效。

    iisexpress.exe"(CLR v4.0.30319: /LM/W3SVC/2/ROOT-1-132988213326573121): 已加载"C:\Windows\Mic ...

最新文章

  1. 为什么那么多程序员不敢学Python?
  2. 不会编程也能做这么酷炫的视频风格迁移?这个工具冲上Reddit热榜,还能在线试玩...
  3. C# Socket实现聊天通信
  4. 如何操控输入框中的placeholder属性
  5. C++之map插入数据相同的key不能覆盖value解决办法
  6. Android 7.0 获取相机拍照图片,适配三星手机拍照,解决三星手机拍照屏幕旋转,判断设备是否有摄像头
  7. 调整java字体大小_Java自动调整到Windows 7的字体大小调整
  8. 将java类的泛型集合转换成json对象
  9. 【转】C# 过滤HTML,脚本,数据库关键字,特殊字符
  10. 115网盘android使用方法,115网盘Android新版五项主要特点评测
  11. 微信小程序登录流程理解
  12. 我能为IT行业做什么
  13. 14.css中的定位的参照物
  14. cmmi3级包含的过程域
  15. HTTP基础:响应报文
  16. 南大通用GBase8s 常用SQL语句(124)
  17. 关于execel单元格中的数字变成文本(左上角带绿色三角形标志)的办法
  18. 戴尔台式计算机usb驱动,整套解决方案:如何为戴尔计算机设置USB闪存驱动器?...
  19. Linux V4L2子系统-应用层访问video设备(四)
  20. vivox21升级鸿蒙,vivo X21刷机教程_vivo X21A卡刷升级更新官方系统包

热门文章

  1. centos7和centos6 开机 运行级别详解和设置
  2. LINUX入侵检测指导
  3. 大数据-Hadoop 3.3.1安装详解
  4. 关于字符集的简单介绍
  5. Go语言操作MySQL的基础知识
  6. seata分布式事务协调管理器是如何实现的
  7. case when语句中加上and or的处理方式
  8. jQuery来实现一个ajax实例
  9. 超详细的Hadoop2配置详解
  10. LockDemo 锁对象