一:环境
操作系统环境: Windos Server 2008 R2 64bit
所需 软件版本: SQLSERVER 2008 64 位
Oracle client 32 位和 Oracle client 64 位
二:问题
用 Oracle 的客户端去连接远程 Oracle 数据库可以,但用 SQL SERVER 去连接时,总是报一个 OraOLEDB.Oracle.1 没有提供的 错误。
三:解决方法
0 、先去 Oracle 官网上下载 32 位和 64 位的客户端。地址如下:
http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html
1 、安装 32 位的 Oracle 客户端,存放路径 C:/Oracle/product/11.2.0/client_32
2、 安装 64 位的 Oracle 客户端,存放路径 C:/Oracle/product/11.2.0/client_64
这时会报一个内存不足的警告,忽略掉。
3 、找到注册表项HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MSDTC/MTxOCI
OracleOciLib 值改为oci.dll 、OracleSqlLib 值改为orasql11.dll 、OracleXaLib 值改为oraclient11.dll 。
4 、HKEY_LOCAL_MACHINE/SOFTWARE/Wow6432Node/Microsoft/MSDTC/MTxOCI 对它做同样的修改
第3、4步不处理可能也可以解决该问题。
四、原文
- Download 32 and 64-bit clients from http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html (click "see all" to see different versions, otherwise, you'll be downloading the complete Oracle program. Your downloads should be about 600 meg each)
- Run 32-Bit install on the SQL Server. Select "Custom"
- For Oracle Base, enter "C:/Oracle"
- For "Software Location", change to C:/Oracle/product/11.2.0/client_32
- Choose the following components:
- SQL*Plus
- Oracle Call Interface (OCI)
- Oracle Net
- Oracle Services for Microsoft Transaction Server
- Oracle Administration Assistant for Windows
- Oracle Provider for OLE DB
- Oracle Data Provider for .NET
- Oracle Providers for ASP.NET
- Repeat above steps with the 64-bit installer. HOWEVER, change the "Software Location" to C:/Oracle/product/11.2.0/client_64
- I got a memory error at this point, but chose to ignore it since I know there is enough
- Ignore the error "OracleMTSRecoveryService already exists"
Now that the install is done, just need to tweak a few things.
- Make registry changes to HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MSDTC/MTxOCI
- OracleOciLib should be oci.dll
- OracleSqlLib should be orasql11.dll
- OracleXaLib should be oraclient11.dll
- Make same registry changes to HKEY_LOCAL_MACHINE/SOFTWARE/Wow6432Node/Microsoft/MSDTC/MTxOCI
- Create or copy a new tnanames.ora in C:/Oracle/product/11.2.0/client_32 /network/admin
- Create or copy a new tnanames.ora in C:/Oracle/product/11.2.0/client_64 /network/admin
- Reboot!
- You should now see OraOLEDB.Oracle as a provider under Linked Servers/Providers in SSMS
- Right-click this provider, then Properties, then tick the box for "Allow Inprocess"
- You can now create linked server through the GUI or T-SQL
Good luck!
网址:
http://efreedom.com/Question/2-175257/Install-Oracle-OLE-Drivers-Use-SQL-Server-2008-R2-X64