pl/sql developer 必须使用32位oracle instant client才能连接64位oracle数据库,因其仅支持32位oci驱动;database下拉框为空或报“make sure you have the 32 bits oracle client installed”即表明未正确配置32位oci.dll及tns_admin指向network\admin目录。

PL/SQL Developer 本身是 32 位程序,不支持直接加载 64 位 oci.dll;必须搭配 32 位 Oracle Instant Client 才能连上本地或远程的 64 位 Oracle 数据库。
为什么 Database 下拉框为空、报 “Make sure you have the 32 bits Oracle Client installed”
这是最典型的症状,说明 PL/SQL Developer 启动时没找到可用的 32 位 OCI 驱动。它不看系统是 64 位还是 32 位,只认自己能 load 的 oci.dll 架构 —— 而这个 DLL 必须是 32 位的。
- 即使你装了 64 位 Oracle 数据库(比如
ORACLE_HOME在C:\app\...\dbhome_1),它的oci.dll是 64 位,PL/SQL Developer 直接忽略 - 不要试图把 64 位客户端目录加进
PATH或设为ORACLE_HOME,这只会让 PL/SQL Developer 启动失败或继续空白 - 错误日志里如果出现
Unable to load library oci.dll或类似提示,基本可锁定是架构不匹配
必须用 32 位 Instant Client,并正确设置 TNS_ADMIN
Oracle 官方明确说明:PL/SQL Developer 只支持 32 位 OCI。所以你要做的是单独下载、解压、配置一个 32 位 Instant Client,再告诉 PL/SQL Developer 去哪找它。
- 下载
instantclient-basic-win32-*.zip(不是-win64),推荐11.2.0.4.0或12.1.0.2.0—— 新版(如 19c)在某些 Windows 系统上反而会报ORA-12154 - 解压后,在
instantclient_XX_X目录下手动建NETWORK\ADMIN子目录 - 把你的 64 位 Oracle 数据库里的
tnsnames.ora(路径类似C:\app\...\dbhome_1\NETWORK\ADMIN\tnsnames.ora)复制进去 - 必须设置系统环境变量:
TNS_ADMIN指向这个NETWORK\ADMIN目录(不是 Instant Client 根目录) -
NLS_LANG建议设为SIMPLIFIED CHINESE_CHINA.ZHS16GBK(若数据库是中文字符集),否则中文可能乱码
PL/SQL Developer 内部配置要点
首次启动时别急着输密码——Database 下拉为空就点 Cancel 进入主界面,再从菜单进配置,否则改了也白改。
- 打开
Tools → Preferences → Oracle → Connection -
Oracle Home:留空或填 Instant Client 解压根目录(如C:\instantclient_11_2),非必须,但填了更稳 -
OCI Library:必须指定为C:\instantclient_11_2\oci.dll(路径要精确到文件,且确保是 32 位) - 重启 PL/SQL Developer,这时 Database 下拉框应该有内容了;若仍为空,检查
TNS_ADMIN是否拼错、tnsnames.ora里 SERVICE_NAME/SID 是否和SELECT NAME FROM V$DATABASE一致
绕过 tnsnames.ora 的直连方式(适合简单场景)
如果你只是连本机默认实例(比如 ORCL 或 XE),其实可以不用配 tnsnames.ora,在登录窗口手动填:
- Username:
system或其他有效用户 - Password:对应密码
- Database:
localhost:1521/ORCL(格式为host:port/service_name,不是 SID;11g+ 默认用 service_name) - Connection Type 选
Normal
这个方式跳过了 TNS 解析,对调试单实例很高效,但无法使用别名、负载均衡等高级特性。
最容易被忽略的是 TNS_ADMIN 环境变量的值必须指向含 tnsnames.ora 的 ADMIN 目录,而不是 Instant Client 根目录;很多人卡在这一步,反复重装客户端也没用。











