【问题标题】:VBA ODBC Oracle Specified driver could not be loaded due to system error 193: (Oracle in instant client_11_2, C:\...\SQORA32.dll))由于系统错误 193,无法加载 VBA ODBC Oracle 指定驱动程序:(即时客户端_11_2 中的 Oracle,C:\...\SQORA32.dll))
【发布时间】:2016-12-16 11:50:51
【问题描述】:

我试图在 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 in instantclient_11_2}; " & _ "CONNECTSTRING=(DESCRIPTION=" & _ "(ADDRESS=(PROTOCOL=TCP)" & _ "(HOST=MyServer)(PORT=MyPort))" & _ "(CONNECT_DATA=(SID=MySID))); uid=MyID;pwd=MyPWD;"

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

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

【问题讨论】:

  • 当您成功使用 32 位驱动程序时请告诉我们。 :)
  • @cyboashu 我尝试了 32 位和 64 位驱动程序,无论如何我都会遇到同样的错误。

标签: oracle vba excel odbc


【解决方案1】:

您使用 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 环境变量中。

【讨论】:

  • 谢谢。是的,我已经将SQORA32.dl 替换为 32 位版本中的那个,并且还尝试使用 de 64 位版本中的那个。但我仍然有同样的错误。 PATH 也很好。我在 regedit HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers 中有正确的驱动程序。还有其他想法吗?
  • 不,你必须检查HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBCINST.INI\ODBC Drivers!您查看 64 位驱动程序的位置。您必须安装整个 Oracle 客户端 32 位版本,您无法替换单个 DLL,这将无法正常工作。
  • 过失,错误的复制/粘贴。我检查了HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBCINST.INI\ODBC Drivers。我卸载了我的版本并下载了一个新版本并安装它,但我遇到了同样的错误。
  • 现在变得困难了。再次仔细检查您的 Excel 是否为 32 位,并且所有安装的 Oracle 组件也是 32 位的。检查PATH 环境变量中的所有文件夹(即,Oracle 64 位文件夹不能放在第一位——如果存在的话)。卸载 Oracle 时可能会留下一些东西,请参阅 stackoverflow.com/questions/8450726/…
  • 在重新安装所有内容之前,我仔细检查了所有内容是否已消失。不过谢谢。我终于用 Python 做了所有事情(sql 连接和 excel 文件归档)。但据我研究,Oracle 和 Excel 似乎相处得不太好。
猜你喜欢
  • 1970-01-01
  • 2023-04-06
  • 2021-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-08
  • 2012-05-10
  • 2013-12-05
相关资源
最近更新 更多