【发布时间】:2015-04-21 21:07:35
【问题描述】:
在我的机器上安装了适用于 Oracle 11gr2 的 32 位和 64 位客户端后,我在使用 Microsoft Office 产品时遇到了一些问题。我目前正在运行 Windows 7 64 位和 Microsoft Office 32 位。
我们依赖于一些 32 位应用程序,并且正在与一个团队合作 - 其中大多数人拥有 32 位操作系统机器,因此我需要运行 32 位 Office。
目前,我正在创建和维护一些启用 Excel 宏的工作簿,我们的员工使用这些工作簿提交信息以访问数据库。 access 数据库使用 sqora32.dll 驱动程序连接到 oracle,excel 工作簿使用 oraclient11.dll 连接。
我最近构建了一个 ArcGIS Pro,它需要 64 位 oracle 客户端,并且一直在测试它以在我们的生产环境中使用。我以为我已经成功安装了 64 位 oracle 即时客户端(我有 32 位 oracle 客户端的完整管理员版本),因为一切正常。我的 32 位软件的其余部分连接良好。但是,当我尝试通过 access 建立 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 驱动程序,还是使用其他方法?
-
如果您想同时安装 Oracle 客户端(32 位和 64 位),请按照以下说明操作:Stack Overflow - Install Oracle x86 and x64。注意,为了配置 32 位 ODBC 驱动程序启动
c:\Windows\SysWOW64\odbcad32.exe,对于 64 位驱动程序启动c:\Windows\System32\odbcad32.exe。两者的轮廓完全相同,但列出的驱动器不同。