我正在尝试在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版本问题没有任何关系,但我可能错了。< / p>
欢迎任何帮助/建议/解决方案。
答案 0 :(得分:0)
您使用32位Excel。您还必须安装32位Oracle客户端,我认为是这种情况,因为文件夹名为&#34; C:\ apps \ oracle \ 11.2.0.3 \ instant- 32 强> \&#34 ;.但是要验证下载客户端的位置,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
环境变量中。