今天在存储过程中通过dblink的方式从oracle中往sql server中的表插入数据时,报如下的错误:

ERROR ORA-02054: 未决事务处理 15.29.1031
ORA-28500: 连接 ORACLE 到非 Oracle 系统时返回此信息: 
[Oracle][ODBC SQL Server Driver][SQL Server]对象名 'RECOVER.HS_TRANSACTION_LOG' 无效。 {42S02,NativeErr = 208}
ORA-02063: 紧接着 2 lines (起自 SY30SMOKERHIN)   ORA-02054: 未决事务处理 15.29.1031

查阅网上资料:

(1) 有人说在"begin   end"块中,有两段事务,一段是oracle的,一段是sql server ,update或者insert完oracle或者sql server,都要先commit后再进行下一轮的insert 或者update(试过了,问题依旧)

(2) 也有人说修改dblink的监听文件initdg4msql.ora,我没有这个权限,就没有试

(3)在sql server中新增表:

DROP TABLE HS_TRANSACTION_LOG
goCREATE TABLE HS_TRANSACTION_LOG(GLOBAL_TRAN_ID char (64) NOT NULL,TRAN_COMMENT char (255) NULL
)
gogrant all on HS_TRANSACTION_LOG to public
go

看着有点靠谱,与错误提示相符,但经过我的测试发现,这样直接执行是不行的,问题依旧

但通过这个方案加上前面的错误提示,我猜表HS_TRANSACTION_LOG应该是保存事务临时数据的,新增这样表的必须的,但为什么我新增了表依旧不行呢?原因是没在对应的架构下新增表(即RECOVER架构),所以得出下面的解决方案

解决方案如下:

1  在sql server端切换到对应的数据库

use   你的数据库名称
go

2  在你要操作的数据库下的架构那里新增架构并设置如下,如下图:

3  新增表HS_TRANSACTION_LOG

CREATE TABLE [RECOVER].[HS_TRANSACTION_LOG](GLOBAL_TRAN_ID char (64) NOT NULL,TRAN_COMMENT char (255) NULL
)
go

4 为表HS_TRANSACTION_LOG授权,设置如下:

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

  1. [Oracle][ODBC SQL Server Driver][SQL Server]对象名 'RECOVER.HS_TRANSACTION_LOG' 无效(转)

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

  2. ORA-28500:连接ORACLE到非Oracle系统时返回此信息:XXXXXXXXX... ORA-02063:紧接着2 lines (起自DG4

    @[TOC](ORA-28500:连接ORACLE到非Oracle系统时返回此信息:[Microsoft][ODBC驱动程序管理器]无效的参数值{HY009}ORA-02063:紧接着2 lines ...

  3. linux oracle 查看版本号,Linux系统如何查看版本信息

    1.查看当前操作系统内核信息 uname -a [root@ihdemj0ovr /]# uname -a Linux ihdemj0ovr 3.10.0-957.21.3.el7.x86_64 #1 ...

  4. oracle通过imp导出数据库时提示:这些对象由***导出,而不是当前用户解决方法

    自己的用户名为system,密码为12345,服务器为ORCL,待导入的dmp文件名为abc.dmp,存储路径为D:\文件夹\XXX\abc.dmp,待导入dmp的用户名为otherUser,则cmd ...

  5. 安装centos系统时,修改默认网卡名

    在开机界面 按 TAB 键 ,出现如下界面: 在quiet 前面添加如下内容 net.ifnames=0 biosdevname=0 如下图: 如下图,已经修改成功:

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

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

  7. Oracle学习笔记 --- Oracle ORA错误解决方案

    今天在Debug的时候报错了如下信息: 后来综合了网上的东西,总结如下: ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常. ORA-000 ...

  8. win7 php oracle数据库,Win764位系统下PHP连接Oracle数据库,win7oracle_PHP教程

    Win7 64位系统下PHP连接Oracle数据库,win7oracle 下面讲下配置过程 一.下载oracle instantclient 下载地址:http://www.oracle.com/te ...

  9. oracle 登录非系统用户,非Oracle用户使用操作系统验证登陆(/ as sysdba)

    之前写过一篇blog<新用户使用sqlplus / as sysdba登录报错>http://blog.csdn.net/bisal/article/details/9285087 今天碰 ...

最新文章

  1. [转] Android系统版本号和Android API level对应表
  2. Python学习笔记——文件写入和读取
  3. shiro 没有注销再登录_Shiro 详细介绍 068
  4. PowerDesigner使用教程3
  5. 前端学习(2698):重读vue电商网站19之处理图片预览操作
  6. 解决“Class org.apache.hadoop.hdfs.DistributedFileSystem not found“问题
  7. vue keep-alive缓存页面切换后不触发created等用什么检测页面切换
  8. Java50道经典习题-程序7 处理字符串
  9. python中聚类和分类的区别_聚类与分类有什么区别?
  10. 计算机课禁用监视器,win7系统防止别人偷窥电脑的操作方法
  11. 新人做ASO如何快速写好关键词?
  12. 照明中的微波感应是什么?
  13. 【蓝桥杯省赛真题34】Scratch九宫格 少儿编程scratch蓝桥杯省赛真题讲解
  14. JDK命令八、NMT 和 pmap本地内存分析神器
  15. 【建议珍藏】2023年最新Android大厂面经分析,最终入职得物
  16. PADS Logic Decal、Layout Decal绘制
  17. excel表格末尾添加一行_七夕表白,用Excel试试!抖音爆红,一晚点赞破百万
  18. 【学习记录】QT5界面设计的踩坑记录
  19. 微信小程序图片验证组件封装
  20. HHTC_学校集训编程题目(13)(组队赛_3)

热门文章

  1. 谁再说学不会 MySQL 数据库,就把这个给他扔过去
  2. JS 根据生日计算年龄(年月天)
  3. vue js根据生日计算年龄(包含阳历和农历)
  4. 【宾夕法尼亚大学机器人课程学习】Motion Planning
  5. 小区平面布局图 html,国内主流小区彩色平面图绘制(全)
  6. Win10环境变量默认值
  7. SpringBoot应用监控
  8. 2020.05.24期回顾:何谓判断时距?如何如何启动和扩大 Marketplace?
  9. miracast和乐播投屏_手机投屏到电视的5种方法 看完才知道原来这么简单!
  10. MySQL基础知识点整理 - 存储引擎