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

根据标准程序,我们已经使用Oracle和SQL Server的早期版本多年,我已经安装了Oracle最新的ODAC软件包,其中包括Oracle OLE驱动程序到我们新的SQL Server 2008 R2 x64节点上。 我已经完成了推荐的系统重新启动,但是OraOLEDB.Oracle并没有显示在SSMS的Linked Servers \ Providers节点中。 此安装和以前的SQL Server安装唯一的区别是我现在使用SQL Server x64(在Windows 2008 R2上)。 这应该有什么区别?

请注意,我可以直接从SQL Server节点使用SQL * Plus连接到Oracle服务器。 我唯一缺less的是提供者。 任何人都知道我错过了什么? networking上有很多post,但似乎有很多混淆和过时的链接到Oracle的下载页面。

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

经过数小时的研究,我设法为Oracle 11g R2编写了一些工作指令。 事实certificate,您可能需要安装32位和64位客户端才能在BIDS / Visual Studio / SSMS中工作。 我可能已经安装了比我需要的更多的Oracle组件,但是这对我来说是有效的:

  1. http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html下载32位和64位客户端(单击“全部查看”查看不同版本,否则,您将下载完整的Oracle程序,你的下载量应该是每个600M左右)
  2. 在SQL Server上运行32位安装。 select“自定义”
  3. 对于Oracle Base,请input“C:\ Oracle”
  4. 对于“软件位置”,更改为C:\ Oracle \ product \ 11.2.0 \ client_ 32
  5. select以下组件:
  6. 在SQL * Plus
  7. Oracle调用接口(OCI)
  8. Oracle Net
  9. 用于Microsoft Transaction Server的Oracle服务
  10. 适用于Windows的Oraclepipe理助手
  11. OLE DB的Oracle提供程序
  12. 用于.NET的Oracle数据提供程序
  13. 用于ASP.NET的Oracle提供程序
  14. 用64位安装程序重复上述步骤。 但是,请将“软件位置”更改为C:\ Oracle \ product \ 11.2.0 \ client_ 64
  15. 我在这一点上有一个内存错误,但select忽略它,因为我知道有足够的
  16. 忽略错误“OracleMTSRecoveryService已经存在”

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

  1. 将registry更改为HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ MSDTC \ MTxOCI
  2. OracleOciLib应该是oci.dll
  3. OracleSqlLib应该是orasql11.dll
  4. OracleXaLib应该是oraclient11.dll
  5. 使相同的registry更改为HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ MSDTC \ MTxOCI
  6. 在C:\ Oracle \ product \ 11.2.0 \ client_ 32 \ network \ admin中创build或复制一个新的tnsnames.ora
  7. 在C:\ Oracle \ product \ 11.2.0 \ client_ 64 \ network \ admin中创build或复制一个新的tnsnames.ora
  8. 重启!
  9. 您现在应该在SSMS中的链接服务器\提供程序下将OraOLEDB.Oracle视为提供程序
  10. 右键单击此提供程序,然后单击属性,然后勾选“允许进程”
  11. 现在可以通过GUI或T-SQL创build链接服务器

祝你好运!

是的,系统架构有很大的不同。

您需要安装适用于Windows的x64 Oracle客户端软件。