将 SQL Server 链接到 Oracle

将 SQL Server 链接到 Oracle

仅当通过远程桌面连接时执行 SQL Server 查询时才会出现此错误。

从桌面运行查询时,没有问题。这是 tsnNames 问题吗?

链接服务器至 Oracle 9i

服务器:消息 7399,级别 16,状态 1,第 1 行 OLE DB 提供程序“MSDAORA”报告错误。
[OLE/DB 提供程序返回消息:未指定的错误] [OLE/DB 提供程序返回消息:ORA-01041:内部错误。hostdef 扩展不存在] OLE DB 错误跟踪 [OLE/DB 提供程序“MSDAORA”ICommandText::Execute 返回 0x80004005:]。


以下是我的一个联系人的信息:

Product name: Oracle
Data source: xxxx.world
Provider string: MSDAORA

我使用了 Oracle 9i 驱动程序作为 DSN

这是 tnsnames 条目:

xxx.world =
      (DESCRIPTION= 
        (ADDRESS_LIST= 
          (ADDRESS=
         (COMMUNITY=tcp.world)
         (PROTOCOL=tcp)
         (HOST=gvx0aidwh01p.xxxx.com)
         (PORT= 1521)
          )
         ) 
        (CONNECT_DATA=
        (SID=idwp5)
          )
      )

答案1

如果它可以在您的桌面上运行,我认为这不是TNSNAMES问题。链接服务器连接都是相对于 SQL Server 实例进行的。也就是说,TNSNAMES 文件是在托管 SQL Server 的计算机上设置的,以便链接服务器可以找到相应的条目。如果它在一个地方运行,它应该在任何地方都能运行。

我已经设置了相当多的链接到 Oracle 的服务器,但我不是 Oracle 专家。我仔细研究了一下,确实在 Oracle 错误代码参考中找到了这一点:

ORA-01041:内部错误。hostdef 扩展不存在
原因:hstdef 中指向 hstdef 扩展的指针为空。
操作:报告为错误

您可能需要就此问题致电 Oracle 支持。

如果您还能向我们提供一些有关链接服务器配置的信息,我们也许能够发现其他问题。

相关内容