oracle - 由于系统错误 193 : (Oracle in instant client_11_2, C :\. ..\SQORA32.dll),无法加载 VBA ODBC Oracle 指定的驱动程序

标签 oracle vba excel odbc

我正在尝试在 VBA 脚本中创建到 Oracle 数据库的 ODBC 连接,但出现以下错误:

Run-time error '-2147467259  (800004005)':
Specified driver could not be loaded due to system error 193: (Oracle in instantclient_11_2, C:\apps\oracle\11.2.0.3\instant-32\SQORA32.dll)
  • 当转到 %systemdrive%\Windows\SysWoW64\odbcad32.exe 时,我可以看到我的驱动程序“instantclient_11_2”和文件“SQORA32.dll”,并且在连接到Python 中的数据库。

  • 使用 regedit 时,在 Computer\HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers 中我也可以看到驱动程序。

  • 这是我的代码,我尝试了两种不同的连接字符串:

    -strCon = "DRIVER={Oracle in instantclient_11_2};DBQ=MyDBQ;UID=MyID;PWD=MyPWD"

    -strCon = "Driver={Oracle instantclient_11_2}; "& _ “连接字符串=(描述=”&_ “(地址=(协议(protocol)=TCP)”&_ "(HOST=MyServer)(PORT=MyPort))"& _ "(CONNECT_DATA=(SID=MySID))); uid=MyID;pwd=MyPWD;"

  • 我的 MS Excel 版本是 32 位的,我的驱动程序 (SQORA32.dll) 也是,所以我假设它与 322/64 版本问题没有任何关系,但我可能错了。

欢迎任何帮助/建议/解决方案。

最佳答案

您使用 32 位 Excel。您还必须安装 32 位 Oracle 客户端,我假设是这种情况,因为文件夹名为“C:\apps\oracle\11.2.0.3\instant- 32\"。但请确认您下载客户端的位置,32 位和 64 位版本之间只有细微的可见差异。

例如,32 位和 64 位版本的文件名都是 SQORA32.dll

但是,检查注册表项 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBCINST.INI\ODBC Drivers 而不是 HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers以便查看 32 位 ODBC 驱动程序。

如果需要,请更新您的注册表。

同时检查文件夹 C:\apps\oracle\11.2.0.3\instant-32\ 是否在您的 PATH 环境变量中。

关于oracle - 由于系统错误 193 : (Oracle in instant client_11_2, C :\. ..\SQORA32.dll),无法加载 VBA ODBC Oracle 指定的驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38867577/

相关文章:

java - Oracle Java ConcurrentHashMap 的错误实现?

c# - 从多个线程访问 word 文档的单词列表

vba - 评估 ("1")给出错误 438

excel - 在 Excel 中,必须在单元格中搜索特定字符串并将样式应用于该特定字符串

excel - 将每张纸的最后一列导出到文本文件中

oracle - 在字符串中插入空格 x 个字符 oracle

SQL - 当第 1 行满足 Case 条件时更改第 3 行的值

java - 调用或执行sql查询时生成的数据数量

excel - 使用 64 位 Excel 连接到 32 位 Oracle 客户端

excel - 如何使用另一列中的值的引用来增加一列中的值