如何安装 Oracle OLE 驱动程序以在 SQL Server 2008 R2 x64 中使用

Som*_*Guy 10 oracle drivers 64-bit linked-server sql-server

按照我们多年来一直用于以前版本的 Oracle 和 SQL Server 的标准程序,我已经安装了 Oracle 最新的 ODAC 包,其中包括在我们新的 SQL Server 2008 R2 x64 节点上的 Oracle OLE 驱动程序。我已完成建议的系统重启,但 OraOLEDB.Oracle 未显示在 SSMS 的 Linked Servers\Providers 节点中。此安装与以前的 SQL Server 安装之间的唯一区别是我现在使用的是 SQL Server x64(在 Windows 2008 R2 上)。这应该有什么区别吗?

请注意,我可以直接从 SQL Server 节点使用 SQL*Plus 连接到 Oracle 服务器。我唯一缺少的是提供者。有谁知道我错过了什么?网络上有很多帖子,但似乎有很多混乱和过时的 Oracle 下载页面链接。

我唯一需要做的就是创建一个到 Oracle 的链接服务器,并针对它运行选择查询。我不需要通过 Visual Studio 做任何事情。

Som*_*Guy 15

经过数小时的研究,我设法为 Oracle 11g R2 拼凑了一些工作说明。事实证明,您可能需要安装 32 位和 64 位客户端才能在 BIDS/Visual Studio/SSMS 中运行。我可能安装了比我需要的更多的 Oracle 组件,但以下是对我有用的:

  1. http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html下载 32 位和 64 位客户端 (单击“查看全部”可查看不同版本,否则,您将下载完整的 Oracle 程序。您的下载量应该是每个大约 600 兆)
  2. 在 SQL Server 上运行 32 位安装。选择“自定义”
  3. 对于 Oracle Base,输入“C:\Oracle”
  4. 对于“软件位置”,更改为C:\ ORACLE \产品\ 11.2.0 \ client_ 32
  5. 选择以下组件:
    • SQL*Plus
    • Oracle 调用接口 (OCI)
    • 甲骨文网
    • 适用于 Microsoft 事务服务器的 Oracle 服务
    • 适用于 Windows 的 Oracle 管理助手
    • OLE DB 的 Oracle 提供程序
    • 适用于 .NET 的 Oracle 数据提供程序
    • 用于 ASP.NET 的 Oracle 提供程序
  6. 使用 64 位安装程序重复上述步骤。然而,改变“软件位置” C:\ ORACLE \产品\ 11.2.0 \ client_ 64
  7. 此时我遇到了内存错误,但选择忽略它,因为我知道有足够的
  8. 忽略错误“OracleMTSRecoveryService 已经存在”

现在安装已经完成,只需要调整一些东西。

  1. 对注册表进行更改 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCI
    • OracleOciLib 应该 oci.dll
    • OracleSqlLib 应该 orasql11.dll
    • OracleXaLib 应该 oraclient11.dll
  2. 对注册表进行相同的更改HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\MSDTC\MTxOCI
  3. 创建或复制一个新tnsnames.ora的C:\ ORACLE \产品\ 11.2.0 \ client_ 32 \网络\ ADMIN
  4. 创建或复制一个新tnsnames.ora的C:\ ORACLE \产品\ 11.2.0 \ client_ 64 \网络\ ADMIN
  5. 重启!
  6. 您现在应该OraOLEDB.Oracle在 SSMS 中的 Linked Servers\Providers 下看到一个提供者
  7. 右键单击此提供程序,然后单击属性,然后勾选“允许进行中”框
  8. 您现在可以通过 GUI 或 T-SQL 创建链接服务器

祝你好运!