简介:PLSQL Developer 13 免安装版是一款面向 Oracle 数据库管理员与应用开发人员的图形化开发工具,解压即可运行,并支持可选中文界面,可明显降低 PL/SQL 开发、SQL 编写与日常运维的上手门槛。压缩包体积为 64.04MB,采用 7z 格式打包,包内文件清单暂未单独列出,适合快速分发与多设备迁移;目前已有 1090 人学习使用。工具内置 SQL 编辑器与 PL/SQL 编辑器,提供语法高亮、自动完成、错误检查、断点调试等能力,同时支持数据浏览与编辑、表空间和索引等对象图形化管理,并能生成性能统计报表。与 SVN、Git 版本控制集成后,团队协作更方便;自动化脚本执行还能辅助完成数据库维护任务。免安装特性使其不修改系统环境、移动性强,避免了复杂安装步骤与系统冲突,对需要频繁切换工作机、快速部署 Oracle 客户端工具的中高级用户来说,是一份即取即用的实用资源。
1. PLSQL Developer 13 免安装版:从解压到连上数据库要走哪几步
做 Oracle 开发和运维的人,电脑里基本都装过 PLSQL Developer,可真到了换机器、进客户现场、或者临时接手一个遗留系统时,你会发现安装版最大的痛点不是工具本身,而是装的过程太啰嗦:一路点下一步,还要记得把中文语言勾上,装完还得担心和已有的 10g/11g 客户端版本冲突。这个标题里的免安装(解压即用)7z 包,就是想把这件事压缩成一次解压加两处配置,而“可选中文语言”意味着界面语言不用再事后找补丁。
但别高兴太早:免安装不等于免配置。真正的工作量在 Oracle 客户端和字符集对齐这两步,否则你解压完双击 exe,大概率先撞上一个“Cannot load OCI.dll”的下马威。这篇笔记就是从解压、连库、汉化到避坑的完整落地过程,适合要把 PLSQL Developer 13 快速跑起来、或者想把它变成随身工具箱的 DBA 和开发。
2. 解压即用的前提:先把 OCI 客户端和运行位宽对齐
2.1 PLSQL Developer 13 为什么是 32 位工具,位宽不匹配会怎样
很多人在这一步就翻车了。PLSQL Developer 13 本身是一个 32 位应用程序,哪怕你的操作系统是 64 位的 Windows 11,它依然以 32 位进程运行。这带来一个硬约束:它加载的 Oracle 客户端(也就是 OCI.dll)必须是 32 位版本,不能用 64 位的 Instant Client 去配 32 位工具。
如果你图省事,从 Oracle 官网下了最新的 64 位 Instant Client 丢进目录里,工具启动时会到指定路径加载 OCI.dll,但进程位宽对不上,Windows 直接弹错或者工具界面卡死在启动画面。这类问题在任务管理器里能看到进程名,但看不到任何 SQL 层面的错误,属于典型的“黑匣子”故障。
所以解压之后的第一件事,不是急着打开工具,而是确认自己手里的 Oracle 客户端是 32 位的。64 位系统跑 32 位 Instant Client 完全没有问题,这个组合在 Oracle 10g 到 21c 的各类环境下都稳定。
2.2 免安装版的标准目录规划:工具目录、Instant Client、语言文件
我比较推荐把所有东西收在一个根目录里,方便整个文件夹拷走。目录规划大致是这样的逻辑:
D:\oracle_tools\ ├── plsqldev13\ # PLSQL Developer 13 主程序目录 │ ├── plsqldev.exe │ └── ... # 语言文件、插件等 └── instantclient_32\ # 32 位 Oracle Instant Client ├── oci.dll ├── tnsnames.ora # 后续连接配置放这里 └── ...这个结构的关键在于:工具目录和客户端目录保持平级,后面不管是切换 Instant Client 版本还是做多环境隔离,都只改一个环境变量,不用动主程序目录。语言文件一般放在主程序目录内即可,第 4 章会细说。
这样安排还有另一个好处:备份和迁移时,直接把整个 oracle_tools 文件夹打包带走,到新机器解压后重新指向环境变量,就能恢复工作环境,不用重新安装任何东西。
2.3 用 7-Zip 解压并设置 OCI 路径:命令与两种做法
拿到 .7z 包之后,解压本身没什么难度,但路径上有个小坑:尽量解压到不带中文和空格的纯英文路径。Oracle 的某些组件对中文路径有玄学兼容问题,没必要冒险。
# 7-Zip 命令行解压,x 表示保留压缩包内目录结构,-o 指定输出目录 "C:\Program Files\7-Zip\7z.exe" x "D:\downloads\PLSQL Developer 13 可选中文语言免安装(解压即用).7z" -o"D:\oracle_tools"如果机器上没装 7-Zip,用 WinRAR 或者 Bandizip 解压也一样,注意在弹出的窗口里勾选“提取到独立文件夹”,避免文件散落一地。
解压完成后,要做的第一件事是把 32 位 Instant Client 路径告诉工具,常见做法有两种:
# 方式一:设置用户级环境变量 OCI_LIB32,指向 32 位客户端目录 setx OCI_LIB32 "D:\oracle_tools\instantclient_32" # 方式二:把 Instant Client 里的 oci.dll 和依赖文件直接复制到工具目录 copy D:\oracle_tools\instantclient_32\*.dll D:\oracle_tools\plsqldev13\这里说下参数含义:OCI_LIB32 是 PLSQL Developer 在 32 位环境下读取 OCI 库的专用环境变量,工具启动时会优先按这个变量去找 OCI.dll,其次才检查系统 PATH。方式一适合想保留多个客户端版本、随时切换的人,我一般推荐这个;方式二适合不想动环境变量的场景,但换来的是升级客户端时要把 dll 再复制一遍的麻烦。
设置完后,别急着双击 plsqldev.exe,先打开命令行验证一下变量是否生效:
echo %OCI_LIB32%如果输出是你设置的路径,说明环境变量已生效。此时再启动工具,能过 OCI 加载这一关的概率就大很多了。
3. 连接串与 TNS:让 PLSQL Developer 13 找到你的 Oracle 实例
3.1 方式一:用 tnsnames.ora 做服务名解析,附最小文件内容
拿到可用的 Oracle 实例后,最常见的连接方式是通过 TNS 服务名。工具启动后登录窗口里要填的“Database”字段,既可以填 tnsnames.ora 里定义的服务名,也可以直接填连接串。但很多新手在不了解 TNS 机制的情况下,直接把数据库 IP 填进去,结果弹出 ORA-12154。
TNS 解析的思路是这样的:工具启动时,会按 TNS_ADMIN 环境变量或默认路径去读 tnsnames.ora 文件,这个文件里定义了一个逻辑名字(比如 ORCL),指向真实的 IP、端口和数据库服务名。只要文件配置正确,登录窗口填 ORCL 就能连上。
下面是一份最小可用的 tnsnames.ora 内容,可以直接照抄改参数:
ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.88)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) )这份配置里的关键字段:ORCL 是 TNS 别名,登录窗口就填这个;HOST 是数据库服务器 IP,别写 localhost;PORT 默认是 1521,除非你的监听器换了端口;SERVICE_NAME 是实例的服务名,不是 SID,这两者在 RAC 环境下差别很大,RAC 通常用 SERVICE_NAME。
文件放哪里也有讲究。常见做法是放到 Instant Client 目录下的 network\admin 子目录里,然后用 TNS_ADMIN 环境变量指过去:
# 创建目录结构并设置 TNS_ADMIN mkdir D:\oracle_tools\instantclient_32\network\admin setx TNS_ADMIN "D:\oracle_tools\instantclient_32\network\admin"把上面那份 tnsnames.ora 保存到该目录后,在命令行用 tnsping 验证一下:
# tnsping 是 Oracle 客户端自带的 TNS 解析测试工具 tnsping ORCL看到“OK (xx msec)”的返回就说明 TNS 解析没问题了。这个验证动作很重要,它能把你和工具层的故障隔离开,避免一上来就对着登录窗口干瞪眼。
3.2 方式二:不写 tnsnames,用 Easy Connect 直接连接
如果是临时环境,或者你不想维护 tnsnames.ora 文件,PLSQL Developer 13 的 Database 字段也支持 Easy Connect 格式,这个格式在 Oracle 12c 之后非常稳定。它在登录窗口里的写法是:
192.168.1.88:1521/orcl这个串的结构很简单:IP:端口/服务名。注意斜杠后面是 SERVICE_NAME,不是 SID。如果你拿到的资料写的 SID,有一点需要注意:默认情况下 PL/SQL Developer 连接时走的是服务名解析,除非你主动在连接串里指定使用 SID 方式,否则不要混用。
什么时候推荐 Easy Connect?我的习惯是:本地开发库和测试环境用 Easy Connect,减少文件维护;正式环境或要经常切换多个库时,用 tnsnames.ora 把服务名固定下来,因为维护多套连接时,服务名比裸 IP 好记、好排查。
在登录窗口里填 Easy Connect 串时,建议先用 SQL*Plus 验证一把连通性:
sqlplus system/oracle@192.168.1.88:1521/orclSQLPlus 能连上,工具连不上的问题基本都出在工具侧的 OCI 配置上;SQLPlus 也连不上,那就要从监听器、防火墙、数据库状态去排查了。这一步能把故障范围缩小一半。
3.3 在登录窗口里对应填参数:用户名、密码、数据库、角色
PLSQL Developer 13 的登录窗口字段不多,就四个核心项:Username、Password、Database、Connect as。
Username 和 Password 好理解,Database 字段填 TNS 别名或者 Easy Connect 串都可以。Connect as 下拉框里有 Normal、SYSDBA、SYSOPER 这几个角色,日常开发用 Normal;需要做管理操作时选 SYSDBA,注意此时操作系统用户必须属于 ORA_DBA 组或者输入的用户本身有 SYSDBA 权限。
这里有一个细节值得提:登录窗口里的“Connect as”选成 SYSDBA 后,PL/SQL Developer 会以 sysdba 会话打开,默认模式从用户名对应的 schema 变成了 sys schema,写 SQL 时如果不注意,很容易把对象建到 sys 下。所以日常写业务 SQL 千万别挂 SYSDBA,只有做管理和性能分析时才切换。
填完参数后,如果还连不上,先别反复重试。打开「帮助 → 关于」里的 OCI 信息页,确认工具实际加载的 OCI 库路径是刚才配置的那个,很多“打不开数据库”其实还是 OCI 路径指错了。
4. 可选中文语言与字符集:界面汉化和中文数据不乱码是一回事吗
4.1 加载中文语言资源:语言包放哪、怎么让界面切到中文
标题里的“可选中文语言”在免安装包里通常是一个独立的语言资源文件,解压后不会自动生效,需要你在工具里手动切换一次。PL/SQL Developer 13 的界面语言设置藏得有点深,路径是:菜单栏的 Tools → Preferences → User Interface → Language。
这个操作在第一次启动时尤其容易漏掉,因为默认语言是英文。在 Language 下拉框里选择 Chinese 后,工具会提示重启生效,重启后菜单、右键、配置窗口都会变成中文,包括错误弹窗里的按钮文字。
但有个前提:语言资源文件必须能被工具找到。免安装版和安装版的区别就在这里,安装版会把语言文件写入安装目录,免安装版则需要你确认解压包里的语言文件是否已经在主程序目录下。文件放对位置后,Language 下拉框才会出现 Chinese 这个选项。
如果选完 Chinese 重启后界面还是英文,大概率是语言文件不存在或文件名没被识别。这时候检查主程序目录下是否有 Chinese 相关的资源文件,没有就从其他机器上拷贝一份同名文件过来,放在主程序目录下再重启工具。这个过程不需要重新安装任何组件。
4.2 中文数据乱码的真正根源:NLS_LANG 与数据库字符集不一致
界面汉化解决了“看按钮”,但解决不了“看数据”。很多人在 PL/SQL Developer 里查一张表,发现中文全是问号或者乱码,第一反应是工具坏了,其实根源几乎都指向同一个变量:NLS_LANG。
NLS_LANG 的格式是“语言_地域.字符集”,比如 SIMPLIFIED CHINESE_CHINA.ZHS16GBK 或 AMERICAN_AMERICA.AL32UTF8。这个环境变量决定了 Oracle 客户端和服务器之间通信时,字符怎么编码。如果客户端的 NLS_LANG 字符集和数据库服务端的字符集不一致,数据库返回的中文字节被客户端用错误的编码去解释,显示出来自然就是乱码。
想知道数据库到底用的什么字符集,一条 SQL 就够:
-- 查询当前会话的 NLS 信息,结果会返回类似 AL32UTF8 或 ZHS16GBK SELECT userenv('language') FROM dual;拿到数据库的字符集之后,把客户端的 NLS_LANG 设置成一致。比如上面查询返回的是 AL32UTF8,那么在命令行设置:
# 设置用户级 NLS_LANG,与数据库字符集保持完全一致 setx NLS_LANG "SIMPLIFIED CHINESE_CHINA.AL32UTF8"这里有一点必须说清楚:ZHS16GBK 和 AL32UTF8 都是中文场景常遇到的字符集,但它们是两套编码,混用必然乱码。如果你连的数据库是 ZHS16GBK,客户端就写 ZHS16GBK;是 AL32UTF8,客户端就写 AL32UTF8,不要想当然地“默认中文”。
4.3 做一次乱码测试:插入与读取中文的最小 SQL
设置完环境变量后,重启 PL/SQL Developer,随便打开一个 SQL 窗口做一次完整的“写入→读取”往返测试,这是最直接的验证方法。
-- 建一张最小测试表,插入一条中文记录,再查出来 CREATE TABLE t_zh_test (id NUMBER, name VARCHAR2(100)); INSERT INTO t_zh_test VALUES (1, '中文乱码测试'); COMMIT; SELECT id, name FROM t_zh_test FROM t_zh_test;如果查询结果显示“中文乱码测试”这几个字完整无缺,说明的 NLS_LANG 对齐成功。如果显示的是 ?? 号,说明字符集不匹配,回 4.2 检查环境变量;如果显示了一串不规则乱码,说明数据库字符集本身就不是中文友好的,需要从数据库端查字符集配置。
这个测试值得保留在常用 SQL 里,因为每次换机器、换库、换客户端版本后,都值得跑一遍。我的习惯是把它存成一个 demo.sql,无论在哪台机器上搭好环境,先跑一遍再开始干活。
5. PLSQL Developer 13 免安装版避坑:六个常见问题与排查顺序
5.1 启动报“Cannot load OCI.dll”,先查这三级路径
这是免安装版最常撞上的问题,现象简单粗暴:双击 plsqldev.exe,弹窗提示 Cannot load OCI.dll,然后工具闪退。
原因:工具启动时按环境变量 OCI_LIB32、OCI_LIB64、系统 PATH、工具目录这四个优先级去找 OCI.dll,任何一个路径没指对就会失败。尤其是新做的系统环境变量,要重新打开命令行才会生效,很多人直接在旧命令行里怀疑人生。
解决:先确认echo %OCI_LIB32%输出是否正确,再确认该目录下真的有 oci.dll 文件,最后重启工具。如果还不生效,把 oci.dll 和它同目录的 dll 全部复制到工具主目录下,这是最粗暴也最有效的兜底方案。
5.2 ORA-12154:连接标识符无法解析
现象:登录窗口填了服务名后点连接,报 ORA-12154 TNS:could not resolve the connect identifier。
原因:PL/SQL Developer 没找到 tnsnames.ora,或者你把服务名拼错了。免安装版最常见的做法是根本没把 tnsnames.ora 放到 Instant Client 的 network\admin 下,工具在默认位置找不到文件,自然无法解析。
解决:先确认 tnsnames.ora 位置正确,然后用tnsping 服务名验证解析是否通过。注意,在命令行验证通过不代表工具一定通过,因为命令行和工具读的是同一个 TNS_ADMIN 变量,但如果命令行都不过,一定是文件的问题而不是工具的问题。
5.3 中文数据全变成???,环境变量不同步
现象:工具连上了,界面也是中文,但查询结果里的中文全部显示为问号,而且插入的中文写进库里也是问号。
原因:NLS_LANG 的字符集部分和数据库不一致,客户端把中文字符转换成了数据库不认识的编码,落库后就成了 ?? 号。这种情况用任何工具都救不了,因为你已经把原始字节丢掉了。
解决:严格按 4.2 里的方法,先查库的字符集,再设 NLS_LANG,设置后一定要重启 PL/SQL Developer。这里有个隐性坑:setx 设置的用户环境变量对已经运行的进程无效,必须重启工具。
5.4 杀毒软件把 exe 或者 dll 隔离了
现象:昨天还能用,今天打开发现 plsqldev.exe 不见了,或者启动时提示缺少某个 dll。
原因:免安装工具容易触发杀毒软件或 Windows Defender 的启发式扫描,某些压缩包解压出来的可执行文件会被判定为有风险,然后直接隔离删除。
解决:到杀毒软件的隔离区恢复文件,并在白名单里加上整个 D:\oracle_tools 目录。这个操作优先级不高,但在客户现场常常遇到,值得提前提醒。
5.5 拷到新电脑后组件加载异常
现象:把整个目录用 U 盘拷到另一台电脑,解压后能启动,但部分功能报错,比如文件菜单里的导入导出不可用。
原因:免安装版虽然不带安装程序,但 PL/SQL Developer 首次启动时会在当前用户下写入一些注册表项,直接拷贝目录不会带过来这些项,部分模块默认配置为空。
解决:用管理员身份启动一次 plsqldev.exe,让它重新生成注册表项。这条解决后基本都能恢复正常,如果还不行,检查一下 Preferences 里的目录配置,尤其是 BLOB 编辑器、文件路径这类有记忆功能的选项。
5.6 32 位客户端和 64 位工具混用导致无声失败
现象:启动后一直转圈,进程在任务管理器里能看到,但界面出不来,日志也没有明确报错。
原因:这是位宽不匹配最典型的症状。如果你手头同时下了 32 位和 64 位 Instant Client,OCI_LIB32 指向 32 位,但某些配置文件里写了 64 位路径,工具启动时加载到一半就僵住了。
解决:统一全部指向 32 位客户端,删除 64 位目录下的环境变量引用。记住一句话:PLSQL Developer 13 永远是 32 位进程,它的世界里只有 32 位 OCI。
6. 进阶技巧:让免安装版变成可随身切换的多环境工具箱
当解压即用的环境跑通后,我做的第一件事是把常用连接做成一个个独立的快捷方式。PL/SQL Developer 13 支持在启动命令里直接带登录参数,格式大概是:
# 在快捷方式的目标栏里追加登录信息,双击即连 D:\oracle_tools\plsqldev13\plsqldev.exe system/oracle@192.168.1.88:1521/orcl把这个快捷方式命名为“生产环境”,另一个换成测试库 IP,命名为“测试环境”。这样每天开工不用打开工具再选库,双击快捷方式直接进会话,换环境时也不用在登录窗口里反复改 Database 字段。
Instant Client 的切换则可以配合 OCI_LIB32 完成。我保留了两个独立客户端目录,一个字符集配 ZHS16GBK,另一个配 AL32UTF8,连接对应数据库前只改这个环境变量,工具的其余配置完全不受影响。比装多套软件干净得多。
最后说一个我自己的习惯:每次搭完新环境,我都会在 SQL 窗口里跑一遍中文往返测试,查一下userenv('language'),再把 OCI 路径截图存档。这个动作看起来很笨,但它帮我省下了很多莫名其妙的中文乱码排查时间。免安装版的真正价值就是这八个字:解压即用、配置可搬。希望你在用 PL/SQL Developer 13 免安装版时,也能少走这些弯路,把时间留给真正的 SQL 调优和数据问题。希望帮到你。
本文还有配套的精品资源,点击获取