windows - 安装 32 位和 64 位客户端时,获取 MS Office 2013(32 位)Excel 和 Access 以连接到 Oracle 数据库

标签 windows oracle vba excel

在我的机器上安装 Oracle 11gr2 的 32 位和 64 位客户端后,我在使用 Microsoft Office 产品时遇到了一些问题。我目前运行的是 Windows 7 64 位和 Microsoft Office 32 位。

我们依赖于一些 32 位应用程序,并且正在与一群人一起工作 - 他们中的大多数人都有 32 位操作系统的机器,所以我需要运行 Office 32 位。

目前,我正在创建和维护一些支持宏的 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 中的软链接(soft link)和更改 PATH 环境变量中条目的顺序的变通方法,并设置NLS_LANG 环境变量。

我真的很想解决这个问题,而不必找另一台机器来测试 Pro。谁能帮我解决这个问题?因为我的 32 位软件连接正确,我认为这与 Office 尝试使用 64 位驱动程序有关,但我不是这方面的专家。所以,我不知道。

如有任何帮助,我们将不胜感激。如果之前已经回答过这个问题,你能提供一个链接吗?从上周到今天的大部分时间里,我一直在搜索此内容,但一直找不到任何可以解决我的特定问题的内容。

最佳答案

我在尝试使用 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;

关于windows - 安装 32 位和 64 位客户端时,获取 MS Office 2013(32 位)Excel 和 Access 以连接到 Oracle 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29783134/

相关文章:

VBA:多维列表、数组、集合或字典的性能

windows - 在 Windows 上编译基于 Qt 的 NPAPI 浏览器插件

sql - 获取Oracle中不包含 "_"的表名

xml - 甲骨文 10g : Reading XML values from Clob using XMLSequence and ExtractValue

VBA循环条件在任意行数后停止评估

Excel - 拆分列表

c - 从 sys 文件中提取资源

windows - RunOnce 在重新启动时使用随机名称重命名计算机名

windows - 如何在 Windows 7 上自动运行 CD/DVD 中的软件?

sql - 删除字符串中的所有空格