在 x64 的 Win7 上重新安装了 Oralce 后,通过 PL/SQL 连接数据库时,提示如下错误信息
Could not initialize “C:\oracle\instantclient\oci.dll”
Make sure you have the 32 bits Oracle Client installed.
环境
windows10 64bit
Oracle win64 19c
PL/SQL v12.0
详细错误信息
Initialization error
Could not initialize “C:\oracle\instantclient\oci.dll”
Make sure you have the 32 bits Oracle Client installed.
OCIDLL forced to C:\oracle\instantclient\oci.dll
LoadLibrary(C:\oracle\instantclient\oci.dll) returned 0
问题原因
解决方案
从 https://docs.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-160 下载 Microsoft Visual C++ Redistributable packages。 并安装。问题解决。
将 instantclient-basic-windows.x64-19.12.0.0.0dbru.zip 解压至 c:\oracle, oci.dll 所在目录为:c:\oracle\instantclient
设置环境变量
TNS_ADMIN=C:\oracle\instantclient\NETWORK\ADMIN
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK (注:NLS_LANG前半部分必须是AMERICAN_AMERICA,因为instant client不支持其他语言;而后半部分可以根据你数据库的字符集调整,如果数据库采用AL32UTF8,则可以设置AL32UTF8)
启动PL/SQL Developer ,点击“取消”不要登录,菜单 --> Tools --> Perferences --> Connection 修改 Oracle_Home 和 OCI Library 的配置: OracleHome: C:\oracle\instantclient OCI library: C:\oracle\instantclient\oci.dll