Sql server 使用SQL server 2000为Oracle链接服务器执行分布式事务

Sql server 使用SQL server 2000为Oracle链接服务器执行分布式事务,sql-server,oracle10g,distributed,linked-server,Sql Server,Oracle10g,Distributed,Linked Server,我正在尝试使用SQL server 2000为单个Oracle链接服务器执行分布式事务,我想出了以下脚本: BEGIN DISTRIBUTED TRANSACTION; SET XACT_ABORT off; GO SELECT MAX(DEPTNO)+1, FROM [WSF08_CONTA_ORADATA_II]..[SCOTT].DEPT SET XACT_ABORT on; GO COMMIT TRANSACTION; 脚本一运行,我就会出现以下错误,

我正在尝试使用SQL server 2000为单个Oracle链接服务器执行分布式事务,我想出了以下脚本:

BEGIN DISTRIBUTED TRANSACTION;
  SET XACT_ABORT  off;
  GO

  SELECT MAX(DEPTNO)+1,
  FROM [WSF08_CONTA_ORADATA_II]..[SCOTT].DEPT

  SET XACT_ABORT  on;
  GO

COMMIT TRANSACTION;
脚本一运行,我就会出现以下错误,随后是SQL Management studio冻结并关闭连接

味精7399,第16级,状态1,第3行
链接服务器“WSF08_CONTA_ORADATA_II”的OLE DB提供程序“OraOLEDB.Oracle”报告了一个错误。提供程序报告了意外的灾难性故障。
味精7303,16级,状态1,第3行 无法为链接服务器“WSF08_CONTA_ORADATA_II”初始化OLE DB提供程序“OraOLEDB.Oracle”的数据源对象

发生了什么事

*p.D.:

  • 我可以使用常规查询创建/更新/删除数据,但当涉及
    分布式事务
    子句时会显示错误
  • 我们最近将服务器升级或链接到Oracle 10g,值得一提的是,我没有遇到我们使用9i时遇到的问题

  • 要在分布式事务中注册SQL Server和Oracle,MSDTC需要启用XA事务。见:

    当故障诊断码作为XA兼容故障诊断码时 事务管理器,Oracle,IBM DB/2, Sybase、Informix和其他 XA兼容的资源管理器可以 参与交易 DTC控制


    是的,我可以不使用“开始分布式事务”选项进行选择和插入