【问题标题】:Getting MS Office 2013 (32 bit) Excel and Access to connect to Oracle database when both 32 and 64 clients are installed安装 32 和 64 客户端时,让 MS Office 2013(32 位)Excel 和 Access 连接到 Oracle 数据库
【发布时间】: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。两者的轮廓完全相同,但列出的驱动器不同。

标签: windows oracle vba excel


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-29
    • 1970-01-01
    • 2020-11-19
    • 2011-10-30
    • 2016-09-05
    • 1970-01-01
    相关资源
    最近更新 更多