当安装了32位和64位客户端时,如何让MS Office 2013(32位)的Excel和Access连接到Oracle数据库

3
安装了Oracle 11gr2的32位和64位客户端后,我在使用Microsoft Office产品时遇到了一些问题。我当前正在运行Windows 7 64位操作系统,安装的是Microsoft Office 32位版本。我们依赖于一些32位应用程序,并且与一个团队合作 - 大多数人都有32位操作系统的机器,所以我需要运行Office 32位版本。目前,我正在创建和维护一些启用宏的Excel工作簿,供我们的员工使用以提交信息到访问数据库。访问数据库使用sqora32.dll驱动程序连接到Oracle,而Excel工作簿使用oraclient11.dll连接。
最近我获得了ArcGIS Pro的版本,需要64位的Oracle客户端,并一直在测试其在我们的生产线上的使用情况。我认为我已经成功安装了64位的Oracle Instant Client(我拥有32位Oracle客户端的完整管理员版本),因为一切都很顺利。其余的32位软件都可以正常连接。但是,当我尝试通过访问连接Oracle时,驱动程序失败或者我会收到一个kernelbase错误,Access完全崩溃。
当我尝试通过Excel VBA查询时,我会收到来自Oracle ODBC驱动程序的错误。它说,“内部错误 - 无法在驱动程序加载期间初始化NLS”。我的事件日志显示oraclient11.dll失败。当我尝试使用“以管理员身份运行”选项连接时,应用程序不会完全崩溃,它们只是停止工作。
我尝试卸载和重新安装32位Oracle客户端,设置oracle_home环境变量,使用c:\ windows \ system32中的软链接进行解决,并更改PATH环境变量中条目的顺序,并设置NLS_LANG环境变量。我真的很想在不需要找到另一台机器测试Pro的情况下解决这个问题。因为我的32位软件已经正确连接,所以我认为这与Office尝试使用64位驱动程序有关,但我对此并不是很了解。所以,我不知道。任何帮助都将不胜感激。如果此问题以前已经得到解答,请提供链接。我从上周开始一直在搜索这个问题,但一直没有找到任何解决我的特定问题的内容。

你是通过ODBC数据源管理员配置ODBC驱动程序,还是使用其他方法? - Comintern
1
如果您想安装Oracle客户端(32位和64位),请按照以下说明操作:Stack Overflow - 安装Oracle x86和x64。请注意,为了配置32位ODBC驱动程序,请启动c:\Windows\SysWOW64\odbcad32.exe,对于64位驱动程序,请启动c:\Windows\System32\odbcad32.exe。两者具有完全相同的外观,但列出的驱动器不同。 - Wernfried Domscheit
1个回答

0

我曾经遇到过类似的问题,尝试使用Teradata ODBC连接时,我不得不通过明确指定dll文件的位置来解决它。我的连接字符串最终看起来像这样。由于另一个问题,我放弃了尝试使用DSN名称。

ODBC;DefaultDir=C:\Program Files (x86)\Teradata\Client\14.10\ODBC Driver for Teradata\Lib\tdata32.dll;DRIVER={Teradata};DBCName=ourserver.com;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接