仅当通过远程桌面连接时执行 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 支持。
如果您还能向我们提供一些有关链接服务器配置的信息,我们也许能够发现其他问题。