使用 64 位 Excel 连接到 32 位 Oracle 客户端
Connecting to 32 bit Oracle client with 64 bit Excel
我正在尝试使用 VBA 中的此连接字符串将我的 Excel 连接到 Oracle:
dim cn As New ADODB.Connection
cn.Open "Provider=OraOLEDB.Oracle;Data Source=source;User Id=userid;Password=pwd;"
我收到这个错误:
Run-time error '3706':
Provider cannot be found. It may not be properly installed.
相关参考:
Microsoft ActiveX Data Objects 6.1 Library
OraOLEDB 1.0 Type Library
- Excel 是 MS Office Professional Plus 2010 64 位
- Windows 是 7 企业版,服务包 1,64 位
- Oracle 客户端是 11.2.0 32 位(我认为)
- Oracle 服务器是 Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
现在...我已经在网上搜索过但无法弄清楚问题出在哪里,但我最好的猜测是我正在使用的驱动程序存在一些 32 位与 64 位冲突。在我让我公司的 IT 部门尝试为我安装东西之前,我想了解我应该走哪条路。如果 MS Office 是,Oracle 客户端是否必须是 64 位的?还是我只需要 64 位 Oracle 数据访问组件?我尝试了一堆不同的连接字符串但没有成功,包括使用 MSDAORA 而不是 OraOLEDB.Oracle...
oracle 服务器无关紧要。
尝试打开dos window并输入c:\ tnsping yourservername
查看安装问题。
是的,当您使用 64 位 Excel 时,您还必须安装 64 位 Oracle 客户端和 64 位 OLE DB 提供程序。
Microsoft 的 OLE DB 提供程序(即 MSDAORA
)不存在 64 位。它仅适用于 32 位,并且已经弃用了很长时间。
我不知道您是否需要 32 位 Oracle Client 来做其他事情,所以也许您不能简单地将它从您的 PC 中删除。下面是如何在一台机器上同时安装 32 位和 64 位 Oracle Client 的说明。
Install Oracle Client x86 and x64
我也有同样的问题,解决方案是将 excel 会话的 oracle 驱动程序设置为 32 位驱动程序并启动 excel。
我使用以下 Bat 文件打开 excel,它连接到 oracle 没有任何问题:
#
Set Temp=C:\Temp
Set TMP=C:\Temp
Set Oracle_Home= #YourDriveLetterhere - >M:\ORA12C\product.1.0\client_1
Set Path=C:\Windows;C:\Windows\System32;M:\ORA12C\product.1.0\client_1\bin;M:\ORA12C\product.1.0\client_1\nls\mesg;M:\ORA12C\product.1.0\client_1\network\admin;
START "" "C:\MacroFileNameWhichConnectsToOracle.xlsm"
#
我正在尝试使用 VBA 中的此连接字符串将我的 Excel 连接到 Oracle:
dim cn As New ADODB.Connection
cn.Open "Provider=OraOLEDB.Oracle;Data Source=source;User Id=userid;Password=pwd;"
我收到这个错误:
Run-time error '3706':
Provider cannot be found. It may not be properly installed.
相关参考:
Microsoft ActiveX Data Objects 6.1 Library
OraOLEDB 1.0 Type Library
- Excel 是 MS Office Professional Plus 2010 64 位
- Windows 是 7 企业版,服务包 1,64 位
- Oracle 客户端是 11.2.0 32 位(我认为)
- Oracle 服务器是 Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
现在...我已经在网上搜索过但无法弄清楚问题出在哪里,但我最好的猜测是我正在使用的驱动程序存在一些 32 位与 64 位冲突。在我让我公司的 IT 部门尝试为我安装东西之前,我想了解我应该走哪条路。如果 MS Office 是,Oracle 客户端是否必须是 64 位的?还是我只需要 64 位 Oracle 数据访问组件?我尝试了一堆不同的连接字符串但没有成功,包括使用 MSDAORA 而不是 OraOLEDB.Oracle...
oracle 服务器无关紧要。
尝试打开dos window并输入c:\ tnsping yourservername
查看安装问题。
是的,当您使用 64 位 Excel 时,您还必须安装 64 位 Oracle 客户端和 64 位 OLE DB 提供程序。
Microsoft 的 OLE DB 提供程序(即 MSDAORA
)不存在 64 位。它仅适用于 32 位,并且已经弃用了很长时间。
我不知道您是否需要 32 位 Oracle Client 来做其他事情,所以也许您不能简单地将它从您的 PC 中删除。下面是如何在一台机器上同时安装 32 位和 64 位 Oracle Client 的说明。 Install Oracle Client x86 and x64
我也有同样的问题,解决方案是将 excel 会话的 oracle 驱动程序设置为 32 位驱动程序并启动 excel。
我使用以下 Bat 文件打开 excel,它连接到 oracle 没有任何问题:
#Set Temp=C:\Temp
Set TMP=C:\Temp
Set Oracle_Home= #YourDriveLetterhere - >M:\ORA12C\product.1.0\client_1
Set Path=C:\Windows;C:\Windows\System32;M:\ORA12C\product.1.0\client_1\bin;M:\ORA12C\product.1.0\client_1\nls\mesg;M:\ORA12C\product.1.0\client_1\network\admin;
START "" "C:\MacroFileNameWhichConnectsToOracle.xlsm"
#