我正在尝试在 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/