简介:PL/SQL Developer 13 可选中文语言免安装版是一套面向 Oracle 数据库管理员与开发人员的便携式开发工具包,旨在免去传统安装步骤、消除英文界面带来的操作障碍。内置 SQL 与 PL/SQL 双编辑器,支持语法高亮、自动补全、错误检查和断点调试,能显著提升编码速度;同时提供图形化对象管理、数据浏览编辑、性能报表生成、自动化脚本执行以及 SVN/Git 版本控制集成,覆盖了日常开发、运维和团队协作的常见场景。压缩包整体约六十四兆字节,解开即可运行,不会改动主机系统,既便于在不同电脑间转移,也适合应急调试和快速部署。目前已有 1090 人学习下载,对于希望低成本上手 Oracle 开发、追求高效便捷工作的数据库从业者来说,是一份实用且省心的备选工具。
1. 免安装的中文版不是黑匣子:PLSQL Developer 13 为什么能「解压即用」
看到「PLSQL Developer 13 可选中文语言免安装(解压即用).7z」这个压缩包名,很多人的第一反应是:解压、双击、连库,三步走完。实际用过的人会告诉你,这个标题只讲了一半的真话——软件的绿色化确实省掉了安装向导那些下一步下一步,但真正决定你能不能连上数据库的,不是这个压缩包里的主程序,而是它有没有替你准备好 Oracle 客户端环境。
这个包的名字里藏着三层信息:第一,PL/SQL Developer 13 是当前 Oracle 开发工具里窗口化体验最顺手的一代,13 相比老版本在代码补全和高亮上有明显提升;第二,可选中文语言意味着界面语言不是写死的,解压后能在英文和中文之间切换;第三,免安装只是免掉了 MSI 安装流程,不代表免掉 oci.dll 和 tnsnames.ora 的依赖。本文就把这条链路拆开讲清楚:解压后放在哪个目录、OCI 库怎么指、tnsnames 怎么写、中文界面怎么切、连不上时从哪里查起。适合被 Oracle 客户端配置折磨过的人,也适合第一次用 PL/SQL Developer 的新手照着落地。
2. 绿色版背后的真实依赖:不是解压就完事,是替你省了安装步骤
2.1 为什么 PL/SQL Developer 能做成免安装:注册表与安装目录的关系
PL/SQL Developer 本质上是个绿色友好的软件——它的主程序安装时往注册表里写的东西不多,主要是一个安装路径和文件关联。安装版往注册表写的内容,我这个包早就写成了配置文件,所以解压就能启动主程序。但主程序能启动,和你能连上数据库,是两码事。
常见的做法是解压后目录里除了 plsqldev.exe 主程序,还带一个 Instant Client 子目录,或者至少带一个说明文档告诉你去哪里下载。如果是前者,那这个包的作者已经把 Oracle 官方那种压缩版客户端(Instant Client)一起压进去了,你唯一要做的是在首选项里把 OCI 库指过去。如果只有主程序,你需要自己准备一个 Oracle Client 或者 Instant Client,这是最常见的翻车点。
判断方法是看解压后的目录结构:
# 解压命令,推荐用 7-Zip,兼容性好 7z x "PLSQL Developer 13 可选中文语言免安装(解压即用).7z" -o"D:\Tools\PLSQLDev"先解释这条命令:7z x表示解压并保留目录结构,-o指定输出目录,注意-o后面紧跟路径,没有空格。解压完打开目录看有没有类似instantclient_19_17这样的子目录,有就省事,没有就得自己补。
我把这套东西固定放在D:\Tools\PLSQLDev,不推荐放 C 盘,特别是C:\Program Files这种带空格和 UAC 保护的路径,后面写配置时路径带空格容易把 tnsnames 指向搞混,权限问题也很阴间。
2.2 oci.dll 是命门:首选项里必须明确指定 Oracle 客户端位置
PL/SQL Developer 连接 Oracle 数据库不是自己实现的协议,它是通过 OCI(Oracle Call Interface)调 Oracle 客户端库去连的。这个库在 Windows 上就叫oci.dll,位置在 Instant Client 目录或完整 Oracle Client 目录下。主程序启动时不加载 oci.dll,等你要连接时才加载,所以你完全能打开界面、看到中文菜单,却连不上库——这也是很多新手困惑的地方。
配置方式很简单:
- 打开 PL/SQL Developer,菜单栏找到 Tools(工具)下的 Preferences(首选项)。
- 展开 Connection(连接)节点,找到 OCI Library(OCI 库)配置项。
- 把路径指到你解压出来的 Instant Client 目录下的 oci.dll,比如
D:\Tools\PLSQLDev\instantclient_19_17\oci.dll。 - 保存并关闭,重启主程序生效。
这里有一个操作细节要注意:有些绿色版的 Preferences 是跟随注册表走的,有些是写在安装目录下的配置里的。如果你把目录从 D 盘挪到 E 盘,第一次启动会报找不到库,或者直接弹窗让你重新指定——这很正常,重新指一遍即可,不是什么玄学问题。
参数上我建议这样选:如果你的数据库是 19c 及以下版本,用 19 系的 Instant Client 兼容性最好;如果是 11g 老库,Instant Client 12 或 11 更稳。不要盲目追新,21c 的 Instant Client 连 11g 库有时能连上但字段类型映射有小毛病。
2.3 没有 tnsnames 就没法按服务名连库:最小配置实例
Oracle 连接有两种主流方式:一种是直接写连接串host:port/service,一种是配 tnsnames.ora 用别名。生产环境里 DBA 给你的通常是一个服务名,比如ORCL或PDB1,这时候没有 tnsnames.ora 就很被动。Instant Client 模式下 tnsnames.ora 要放在客户端的network\admin子目录下,注意不是随意放某个目录然后靠猜。
# 文件位置:D:\Tools\PLSQLDev\instantclient_19_17\network\admin\tnsnames.ora ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCL) ) ) PDB1 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.20)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = PDB1) ) )这段配置的含义:第一行是别名,就是你到时候在登录框里填的名字;HOST是数据库服务器地址;PORT默认 1521 不用改;SERVICE_NAME是真正的服务名,这个必须找 DBA 确认——很多人把SERVICE_NAME和SID混着填,导致 ORA-12514。
配完后还需要让程序能找到这个文件,常见做法是设置环境变量:
# 设置 TNS_ADMIN 指向 network/admin 目录 setx TNS_ADMIN "D:\Tools\PLSQLDev\instantclient_19_17\network\admin"setx是写永久环境变量,写完要重开终端或重启主程序才生效。如果你不想动环境变量,也可以每次在登录窗口直接填连接串,但那样笔误的概率很高,我反正不推荐。
3. 中文语言与连接串落地的完整配置:从解压到成功登录
3.1 切换中文界面的三处控制点:语言文件、注册表与启动参数
标题里「可选中文语言」几个字的重点在「可选」——不是解压出来就是中文,而是在某个配置点可以切换。PL/SQL Developer 的语言机制是外挂语言包,主程序默认英文,语言文件通常是 .lng 格式,放在主程序目录下的Language子目录里,中文的语言文件一般是Chinese.lng或SimpChinese.lng。
我见过三种切换方式,按成功率排序:
第一种是首选项里切。打开程序后进入 Tools > Preferences > User Interface > Language,下拉框里选 Chinese,确定后重启程序。这是最正规的路径,前提是你的包里确实带了语言文件。
第二种是改注册表。老版本里语言设置存在HKEY_CURRENT_USER\Software\Allround Automations\PLSQL Developer,里面有个Language字符串值,改成Chinese再启动。
第三种是启动参数。部分绿色版支持plsqldev.exe /language:Chinese这种参数,但不通用,我不太依赖这种方式。
有一种情况要特别留意:如果包内带的语言文件版本和主程序版本不一致,切换中文后会有部分菜单项还是英文,或者干脆切完界面全乱码。遇到这种情况,优先找个和主程序版本完全匹配的语言文件替换掉旧的,而不是反复切语言设置,后者治标不治本。
3.2 连接串的两种写法与登录窗口参数说明
首次启动后,登录窗口可能让你填 User、Password、Database。Database 那边你既可以直接填别名(如 ORCL),也可以填完整连接串。我建议首次落地时直接用完整连接串,减少 tnsnames 没生效时排查问题的范围:
用户名:scott 密码:tiger 数据库:192.168.1.10:1521/ORCL这个连接串的格式是IP:端口/服务名,是 OCI 直连的写法,不需要 tnsnames.ora 参与。先用它验证客户端到数据库的网络链路是否通,通了之后再切回别名方式,优化日常使用体验。如果直连串能连上但别名不行,问题定位在 tnsnames.ora 路径或者 TNS_ADMIN 环境变量身上;如果直连串都连不上,那就是网络、监听或客户端位数的问题。
登录框里还有一个角色(Role)选项:Normal(普通)和 SYSDBA(管理员)。日常开发永远选 Normal。我看到很多新人手滑选成 SYSDBA,连上去的确实是库,但有些操作会被审计,出了问题追查起来很不愉快。
3.3 首次成功登录后的五个首选项目:一次配好后面省心
连上数据库只是开始,真正让 PL/SQL Developer 好用的是这些首选项。我按重要性排个序,每个都值得动一下:
| 配置项 | 位置 | 推荐值 | 作用 |
|---|---|---|---|
| 自动保存布局 | Tools > Preferences > User Interface | 开 | 重启后窗口布局不跑 |
| 编辑器字体 | Tools > Preferences > User Interface > Fonts | Consolas 或微软雅黑 | 中文注释不糊,等宽字体对齐 |
| SQL 格式化 | Tools > Preferences > SQL Formatter | 按团队规范开 | SQL 语句可读性,后面专门讲 |
| 登录历史 | Tools > Preferences > Logon/Connection | 按需关闭 | 保存密码是双刃剑 |
| 日期显示 | Tools > Preferences > NLS | 与数据库会话一致 | 避免日期显示成一堆数字 |
这五项的共性是:都藏在首选项的深层菜单里,不花十分钟配好,之后每次用时都会觉得别扭。特别是字体那项,默认字体在中文 Windows 下渲染中文注释有锯齿感,换成微软雅黑后人舒服很多。
设置完这些,你就拥有一个可以日常写查询、编译存储过程、看执行计划的中文绿色环境了。下一步要面对的是连接层面的几个常见错误,它们占了 PL/SQL Developer 相关问题的八成。
4. 连接报错的排查顺序:ORA-12154、ORA-12514 与中文乱码
4.1 ORA-12154:TNS 无法解析指定的连接标识符
这个错误是出现频率最高的,报错弹窗里能看到的原文类似「ORA-12154: TNS:could not resolve the connect identifier specified」。它的含义是:你填的别名在 tnsnames.ora 里找不到。原因一般是三类:
第一类,tnsnames.ora 文件不存在。有人把 tnsnames.ora 放在了D:\Tools\PLSQLDev\根目录下,甚至放在桌面。常见做法是把整个network\admin目录从 Instant Client 的安装目录里带过来,而不是只复制文件。没有目录结构,客户端找不到。
第二类,环境变量 TNS_ADMIN 指错位置。setx TNS_ADMIN之后再开一个终端看一眼能否读到,可以用这个命令验证:
# 查看当前 TNS_ADMIN 值 echo %TNS_ADMIN%如果输出的是空或者路径和你实际放 tnsnames.ora 的位置不一致,那必然解析不到。还要注意setx写的是用户环境变量,有时候系统环境变量里残留一个旧值,优先级和覆盖关系不够清晰。
第三类,文件名被 Windows 自动改成了tnsnames.ora.txt。这在用记事本新建文件保存时经常发生,文件夹选项里「隐藏已知文件类型的扩展名」开着的话你根本看不到.txt尾缀。解决方法是强制重命名:
# 先确认实际文件名是什么 dir D:\Tools\PLSQLDev\instantclient_19_17\network\admin # 改名 ren tnsnames.ora.txt tnsnames.ora这类问题的排查顺序是:先确认文件存在,再确认路径被程序读取,最后确认别名拼写大小写。Oracle 的别名解析在 Windows 上默认不区分大小写,但建议还是保持一致。
4.2 ORA-12514:监听程序当前无法识别连接描述符中的服务
这个报错典型场景是:tnsnames 都配好了,别名能解析,但连的时候数据库说「我不认识这个服务名」。常见原因是把SERVICE_NAME写错。比如数据库是 CDB 模式,DBA 让你连PDB1,你写的却是ORCL,那监听器不买账。
另一个隐蔽原因是连接串里写了 SID 而不是 SERVICE_NAME:
# 错误写法:SID 和 SERVICE_NAME 混用 192.168.1.10:1521:ORCLOCI 直连串的语法里,冒号后面跟的是 SID 老式写法。现在 12c 以后的环境多用服务名,正确写法是斜杠:
192.168.1.10:1521/ORCL当然有经验的 DBA 会把两者做了等价映射,但你不能赌这个。识别方式是连上了要么错要么慢,不如一开始就用标准格式。
还有一类情况是监听没起来或者监听端口不对,这个通常表现为 ORA-12541「无监听程序」而不是 12514。遇到 12541 时,检查方向和数据库服务器上的服务状态有关,客户端能做的事不多,最快是让 DBA 确认lsnrctl status的输出。
4.3 中文乱码的根源:NLS_LANG 会话语言与数据库字符集
好不容易连上库,查询出来中文全变成问号或者一堆乱码,这是 PL/SQL Developer 用户最想砸键盘的瞬间。这里先澄清一个误区:这跟界面语言的中文汉化包没关系,界面是界面,数据是数据,数据乱码是字符集转换问题。
字符集转换的逻辑是:Oracle 服务器存的数据按数据库字符集编码,客户端会话按NLS_LANG环境变量指定的字符集解码。如果你的NLS_LANG是AMERICAN_AMERICA.US7ASCII,那中文必然出问题。国内环境最常见的配置是SIMPLIFIED CHINESE_CHINA.ZHS16GBK,对应的环境变量设置:
# GBK 字符集客户端 setx NLS_LANG "SIMPLIFIED CHINESE_CHINA.ZHS16GBK"如果数据库是 19c 及以上且字符集是AL32UTF8,那建议用:
# UTF-8 字符集客户端 setx NLS_LANG "AMERICAN_AMERICA.AL32UTF8"一个项目里,NLS_LANG 的最优值取决于数据库的字符集,而不是取决于你个人偏好。确定数据库字符集的查询是:
SELECT value FROM nls_database_parameters WHERE parameter = 'NLS_CHARACTERSET';拿到结果后,对照表:ZHS16GBK数据库配ZHS16GBK的 NLS_LANG,AL32UTF8数据库配AL32UTF8的 NLS_LANG,两边一致最不容易出问题。跨字符集不是不能连,而是必须让 Oracle 做字符集转换,转换规则按二进制处理,有时候表面上能显示出来但已经是替换字符了。
有一点要注意:改完 NLS_LANG 必须重启 PL/SQL Developer,因为它在启动时读取该环境变量来初始化会话,运行中改环境变量是无效的。
4.4 32 位与 64 位不匹配:报错信息可能完全让你摸不着头脑
这个坑最阴的地方在于:你的 Windows 是 64 位的,你的 PL/SQL Developer 也是 64 位的,但 Instant Client 是 32 位的,连库时报错内容五花八门,轻则「ORA-12154」,重则闪退。因为 oci.dll 的位数必须和主程序一致,不是和操作系统一致。
PL/SQL Developer 官方版本里 32 位版其实更常见,原因是很多第三方插件当年只提供 32 位版本。所以你在安装或解压时,先确认主程序位数:
# 看主程序是 32 位还是 64 位(32 位会显示 x86) wmic process where name="plsqldev.exe" get ExecutablePath然后在 Windows 任务管理器里看进程的位数信息。确认后,再去检查 Instant Client 目录下的 oci.dll 是 32 位还是 64 位。一个快速验证技巧:把 oci.dll 拖到一个 64 位记事本工具里,如果提示无法加载,它就是 32 位的——当然这个方法不够严谨,最准确的方式是用工具看 PE 头。我常用的命令:
# 用 dumpbin 工具查看 dumpbin /headers oci.dll | findstr machine输出里有x64就是 64 位,x86就是 32 位。匹配原则一句话:主程序和 oci.dll 位数必须一致,跟操作系统位数无关。市面上很多绿色压缩包作者默认发 32 位主程序配 32 位客户端,就是为兼容性考虑,这时候你装个 64 位 Instant Client 反而出错。
5. 避坑记录:这个绿色版最常见的 5 个翻车现场
5.1 解压路径带空格导致 OCI 加载失败
现象:解压到C:\Program Files\PLSQL Developer后启动正常,但连接时报找不到 oci.dll,或者主程序直接闪退。
原因:路径里有空格。OCI 的加载逻辑在某些版本里对带空格的路径处理不友好,再加上 UAC 权限导致主程序无法写入配置缓存。
解决:统一放到无空格的纯英文路径,如D:\Tools\PLSQLDev。如果是已经装在 Program Files 里的,别硬修复,直接剪切整个目录到 D 盘再配置一次。
5.2 杀毒软件把 Instant Client 目录当病毒隔离
现象:解压后还能用,过两天启动 PL/SQL Developer 提示缺 oci.dll,打开 Instant Client 目录发现里面少了几个文件或者整个目录不见了。
原因:orca 或某些安全软件对 dll 加载行为敏感,把 Instant Client 里的部分 dll 判定为风险文件移入隔离区。这属于误报,但确实会发生。
解决:把整个D:\Tools\PLSQLDev目录加入杀毒软件信任区。如果文件已经被删,不要试图恢复,直接从 Oracle 官方渠道重新解压一份 Instant Client 放进去更快。血的教训是:尽量不要把绿色版压缩包和释放后的目录同时保留在一个磁盘上并被扫描,否则每次解压都被拦。
5.3 登录历史里存了旧密码导致连接串被覆盖
现象:你在登录窗口填了新库的地址,但每次点连接都连到旧库,或者明明填了正确的数据库却直接报错。
原因:PL/SQL Developer 的登录窗口有个下拉历史,它默认选中了历史的某个连接配置,你输入的 Database 被历史记录自动补全覆盖了。这个行为在 13 版本里尤其不明显,因为下拉框默认展开的是最近一次的配置。
解决:登录窗口的 Database 字段右边有个下拉箭头,点开手动选择「空」再输入,或者每次连接前把该字段全选删除后重新输入。另一个根治方法是首选项里关闭保存登录历史:Tools > Preferences > Logon/Connection > 取消勾选 Allow saving of history。
5.4 中文界面切换后部分菜单还是英文
现象:按前述方法切换到中文,主菜单大部分变成中文了,但某些子菜单或右键菜单还是英文,或者弹窗里的按钮文字仍是英文。
原因:语言文件不完整或版本不匹配。绿色版的作者打包时用的语言文件可能是从旧版本拿过来的,13 新增的功能项没有对应的中文翻译条目。
解决:先确认语言文件名称。PL/SQL Developer 13 的 Chinese 语言文件在某些版本里叫Chinese.lng,有些包里还带一个ChineseS.lng。两者区别不绝对,我见过的是繁体与简体的差异。优先替换成和主程序同版本发布的语言文件,替换后重启;如果还不行,把语言切回英文,确认功能正常,再切中文。这个顺序很重要,能排除「语言文件本身损坏」和「主程序功能异常」两种情况。
5.5 数据库字符集是 UTF8,我配了 GBK,为什么偶尔乱码偶尔正常
现象:查询某张表的某些行正常,另外一些行中文显示成问号,数字和英文完全没问题。
原因:ZHS16GBK 无法表示所有 Unicode 字符。数据库是 AL32UTF8,某一行的内容里含有 GBK 字符集编码不了的字符(比如生僻字或特殊符号),转换时就变成了替换字符。表面上「偶尔乱码」其实不是随机,是特定字符必然乱码。
解决:以数据库字符集为准设置 NLS_LANG。已经配错的,改完重启;连上去查询还是有问题,验证一下会话字符集:
SELECT sys_context('USERENV', 'LANGUAGE') FROM dual;输出会告诉你当前会话的 NLS_LANG 实际上是什么,如果和你的环境变量配置一致,那就是字符本身超出了映射范围,不再属于配置问题,而是数据本身的情况。
6. 进阶技巧:SQL 格式化与存储过程调试的日常顺手操作
在 PL/SQL Developer 13 里有一个功能很多人用了几年都没碰过:内置的 SQL Formatter。它的入口在菜单栏的 Edit > SQL Formatter > Format 或者默认快捷键 Ctrl+F12,能帮你把杂乱无章的 SQL 重排成年限分级缩进的格式。但我不是让你全盘接受默认规则,13 版本支持自定义格式化规则:Tools > Preferences > SQL Formatter 里有大小写转换、关键字对齐、逗号换行方式等选项。团队协作时把这些规则导成文件传阅,代码风格能统一到一个相对好看的状态,避免每次 code review 都在争论缩进。
调试存储过程是这个工具的老本行。在对象浏览器里找到你要调试的 Procedure,右键选择 Test,程序会生成一个测试窗口,自动补齐了BEGIN ... END;的骨架代码。你要做的只是填入参数值,然后 F9 开始调试。这里有个关键配置:调试时如果需要看变量值和断点,必须把 DEBUG CONNECT 权限给到当前用户:
GRANT DEBUG CONNECT TO 用户名; GRANT DEBUG ANY PROCEDURE TO 用户名;不给权限时点 F9 会直接报错或者根本没反应,新手容易误以为程序卡死了。调试过程中可以按 Ctrl+N 加断点,在 Watch 窗口里观察变量,也可以用 Step Into(F7)逐行走。
最后一招是窗口布局记忆功能。把常用窗口摆成一个固定的布局——左边对象树,中间 SQL 窗口,下方输出面板——然后在 Tools > Preferences > User Interface > Layout 里保存为默认。重装或者换机器时,把布局配置文件拷过来,你的工作台就瞬间回到顺手状态。我第一次换电脑时忘了做这件事,新机器上的窗口到处乱跑,花了三天才调回顺眼的样子。从那以后,每次用完都会顺手保存一次布局。这个习惯希望你也能养成,希望帮到你。
本文还有配套的精品资源,点击获取