
简介《PL/SQL Developer 11 中文手册》是一份面向 Oracle 数据库开发人员的中文文档资料涵盖 PL/SQL Developer 11.0 集成环境的安装、登录、编写程序、测试调试与优化等核心功能。适合刚接触 PL/SQL 开发或需要系统查阅 IDE 操作细节的 DBA、开发者和运维人员使用。手册内容围绕实际开发流程展开从系统需求与三种安装方式工作站、服务器、脚本到连接 Oracle 数据库、创建保存修改编译对比程序再到测试脚本、变量类型、跟踪运行时错误、查看结果集以及解释计划窗口、自动统计、SQL 跟踪等优化手段能有效帮助读者缩短上手周期并解决日常编码中的常见问题。资源为 PDF 格式包内共 1 个 PDF 文件压缩包大小约 5.5MB。目前已有 1870 人浏览学习是查阅 PL/SQL Developer 操作细节与 Oracle 开发流程的实用参考资料。1. 为什么要啃 plsql developer 11 中文手册一次存储过程调试引发的痛点我把 plsql developer 11 的官方中文手册下载到本地后第一反应是这 PDF 估计又得在硬盘里躺半年。后来因为接手一个老 Oracle 项目一百多个存储过程没人能说清逻辑我才被迫把工具和手册对照着用了一遍发现以前好大一部分活其实都在白费力气。这份中文手册对应的是 Oracle 开发圈最常用的一类 IDE连上数据库写 PL/SQL 块、看执行计划、调试存储过程、做数据比对全部在一个图形界面里完成。它适合两类人——刚入坑 Oracle 开发的新手照着手册能少走很多弯路以及在旧工具链里已经挣扎过一阵子的开发者看完能把手上流程彻底换一遍少加几次班。2. plsql developer 11 的功能地图从对象浏览器到调试器哪些功能真正能减少加班2.1 对象浏览器把数据库结构变成一棵可以点的树很多开发者的习惯是工作时间开一个 SQL Plus 窗口用 desc、select 凑着查表结构。在 plsql developer 11 里左边那个对象浏览器干的就是这份活。连接上去之后表、视图、索引、存储过程、函数、包、触发器、序列全部展开成树形节点。你点一个表右侧能同时看到字段定义、约束、索引和触发器不用再敲一条条数据字典 SQL。日常开发我一般直接在浏览器里双击表名工具会自动在 SQL 窗口生成一条select * from 表名的骨架这是最省时间的一步。如果你想查“这个字段到底在哪些表里出现过”用对象浏览器右上角的搜索框比写 all_tab_columns 模糊查询快得多。11 版本这个搜索框支持通配符输入%test%能一次性过滤出相关的表、视图甚至列名这个特性在跨模块排查数据来源时尤其好用。对象浏览器还有一个很多人没注意到的入口右键某个存储过程选 View 只能读源码选 Test 才会生成带执行能力的测试脚本。查“这段逻辑是什么”用后者更方便因为可以当场跑一下看输出。手册在讲浏览器的部分反复强调“先找对象再操作”而不是一上来就开 SQL 窗口敲命令逻辑就在这里——能点的东西不要去背命令。2.2 存储过程调试器断点、监视与调用栈不要再靠 dbms_output.put_line调试器是 plsql developer 11 最值得花半天搞清楚的功能。过去排查一个存储过程常见做法是往关键位置塞dbms_output.put_line跑完再看输出不对就改参数再跑一次。这种靠输出猜状态的方式写短逻辑还行遇到几十行循环嵌套、临时表切换的包过程就是个黑匣子定位问题全凭运气。在对象浏览器里右键过程选 Test工具会自动生成一个测试脚本本质是个匿名块-- 在对象浏览器中右键过程 PROC_DAILY_SETTLE选择 Test 后自动生成 DECLARE v_biz_date VARCHAR2(10) : 2024-06-30; -- 入参调试前可直接修改 v_out_code NUMBER; -- 输出参数执行后查看 BEGIN -- 按 F9 进入调试F8 单步断点会停在当前行 PROC_DAILY_SETTLE(v_biz_date, v_out_code); -- 调试模式下一般不依赖这条输出看 Watch 窗口更直接 DBMS_OUTPUT.PUT_LINE(返回码: || v_out_code); END;这段脚本的逻辑说明变量声明区和赋值都在过程调用之前方便你模拟不同的入参。运行调试后F8 是单步蓝色的当前行指针会跟着走想看中间变量在 Watch 窗口加一行就行不用重新跑整个流程。断点设置也很简单在代码行左侧灰色栏上点一下出红点执行到这一行会暂停。参数说明这里的入参是日期字符串实际项目里可能是流水号、机构 ID 之类的关键业务值。调试前最好把几个边界值都准备一份比如空串、非法格式、跨月最后一天这类值最容易在过程内部引发隐式转换错误。调试器卡住跑不动时先看右下角状态栏是不是显示 Running如果是检查过程里有没有 sleep 语句或者外部调用的同步等待。另一个常见疑问是“为什么我加了断点但没停”。很可能是当前调试的包对象是旧编译版本工具默认会询问是否重新编译但如果选错了编译对象断点位置和实际执行代码就对不上。这时候在对象浏览器里对该包单独做一次 Compile重新进入 Test基本就恢复了。调试器还有一个容易被忽略的细节在 Test 窗口上方有个 Subprogram 下拉框如果包里有很多私有函数要先选对要下断点的那个子程序不然断点永远不命中。2.3 SQL 窗口与执行计划看执行计划不是只有 F5SQL 窗口是每天写查询的主战场。选中一段 SQL 按 F5工具会用当前用户生成执行计划图形化显示在下方。很多人以为只有慢 SQL 才需要看执行计划其实新写的关联查询、子查询尤其是有 or 条件、like 前导通配符、函数包裹索引列这三种写法的都值得先看一眼计划再交付。执行计划里几个字段要优先盯。Operation 列出现 TABLE ACCESS FULL 时要看是不是真要全表扫Cost 列只是估算值不等于实际耗时Rows 列是优化器根据统计信息猜的和真实情况往往差一个量级。手册里的建议是不要只信一个数把计划里的 Rows 和实际执行返回行数对比差异超过 10 倍就要去查统计信息是不是太久没收集。plsql developer 11 还自带执行计划的历史记录同一段 SQL 多次执行计划变化可以对照。这类功能在数据库迁移或版本升级后特别有用因为统计信息一变计划选择可能完全不一样。另外选中 SQL 后按 CtrlT 在不同版本里默认行为不一样有的版本是格式化F5 才是计划刚切换过来的人很容易按错。2.4 测试窗口与命令窗口什么时候该用哪个Test Window 和 Command Window 是两类容易搞混的窗口。Command Window 本质是个命令行执行简单 SQL 方便Test Window 则是为 PL/SQL 块准备的支持调试和变量绑定。两者的差异可以用一个对比表列清楚对比项Command WindowTest Window支持的语句单条 SQL 或 SQL*Plus 命令PL/SQL 块可多块连续执行调试能力无断点、单步、监视变量绑定支持冒号绑定但没提示声明区直接写带编辑提示适合场景临时查询、看数据跑批量逻辑、调试过程我一般写报表 SQL 用 Command Window写要跑逻辑的一段块脚本用 Test Window。批量执行时Test Window 有个明显优势你可以在一个脚本里放多个匿名块块之间用斜杠分隔连续执行。适合做那种“先清理临时表再灌数再统计”的串行操作。出错时窗口下方会直接标出第几行报错不用到日志文件里翻。这里有个小习惯建议大家建立起来凡是会动数据的脚本哪怕只执行一次也保留一份在这个窗口里文件名带上日期和用途方便以后回溯。plsql developer 11 的窗口标签页支持重命名不要偷懒让一堆 Query 页签堆在那等你想找回某段脚本的时候真的会后悔。3. 中文手册怎么读才划算先看目录再照三个场景去翻3.1 目录结构优先锁定“首选项”“调试”“快捷键”三部分plsql developer 11 中文手册是跟着软件功能菜单走的目录通常按文件、编辑、搜索、视图、工具、窗口、帮助这些主菜单展开。直接从头读到尾效率很低我通常建议先找三个部分。第一是“首选项 / Preferences”这章决定了工具用起来顺不顺手编辑器字体、格式化规则、自动替换表都在这第二是“调试 / Test”相关章节涉及断点、监视、单步等操作第三是快捷键列表很多操作其实不需要点菜单记住十个高频快捷键就够用了。手册每章都配了界面截图和操作序列看的时候不要光读开一个测试数据库跟着做。一个常见误区是拿生产环境练手结果误操作把线上数据改了。我自己的习惯是本地装一个免费的 Oracle XE 实例或者用容器起个临时库所有新功能先在那边试通了再上工作机。PDF 手册本身可以用阅读器的搜索功能遇到报错代码直接搜比翻目录快。3.2 最小连接配置从安装到看到表结构安装包装完之后第一次启动会弹出一个连接配置窗口。填用户名、密码、数据库这里的“数据库”字段是 Oracle 网络服务名不是 SID 也不是 IP 端口。新一点的 Oracle 客户端默认支持 Easy Connect写法可以简化为 host:port/service_name比如 192.168.1.10:1521/orcl。如果本地装了完整客户端也可以用 tnsnames.ora 里配置的网络名。最小连接测试的标准动作填完点 Connect能进主界面左边对象浏览器能看到自己的 schema 列表就算通了。如果连接报错先分清楚是监听问题、账号问题还是权限问题。ORA-12541 是监听没起来ORA-01017 是账号密码错误ORA-00942 通常是当前用户没有访问那个表的权限这三类错误在中文手册的 FAQ 部分都有对应的处理条目。连接配置是可以存下来的。在登录窗口勾选保存密码下次双击连接名就直接进。多环境切换时把每个连接命名清楚比如“生产只读”“测试库 1”“本地开发”避免一忙起来连错库。这个坑我踩过一次两个连接用户名相同、密码不同命名没区分结果半天数据都在测试库里查还以为是代码问题。3.3 一个典型的调试场景按手册把断点跑通场景你刚接手一个存储过程 PROC_PAY_UPDATE同事说它偶尔会把金额更新错。最直接的办法是把过程在 Test Window 打开入参给一个最近出错的具体流水号然后按 F9 进入调试在更新语句前设断点。断点命中后把鼠标悬停在相关变量上能看到当前值。这时候比对这个值和业务预期如果金额变量没问题那问题大概率在 SQL 语句的关联条件里继续单步到 update 执行完再查一下结果表里的数据整个过程不需要改一行业务代码。这就是调试器比 put_line 强的地方。手册里还提到 Watch Group 功能可以把几个关键变量放一组一次性查看。这在大循环调试时特别省事不用一屏一屏地找变量。要注意的是调试会话会持有事务资源测完记得点回滚或提交按钮释放连接不然过一会儿连接池就被占满了。4. 把 plsql developer 11 调成顺手的样子值得改的一组配置参数4.1 首选项里的硬核参数字体、格式化与自动替换编辑器字体默认的等宽字体在中文环境下行距和字宽经常让人不舒服。在首选项的 Editor 部分把字体换成支持中文的等宽字体比如微软雅黑或 Source Code Pro字号调到 12 或 13长时间看不累。格式化规则里SQL 关键字大小写可以统一设成大写入库这样代码风格稳定也方便后来者阅读。格式化还有一个细节值得单独说关键词换行策略。默认情况下一条长 SQL 格式化出来可能挤成一行在中文手册里也有对应的设置一般在 SQL Formatting 部分调整。把 Select、From、Where、Group By 这几个关键字设为强制换行缩进设为 4 个空格可读性会好很多。别小看这个设置代码评审时因为格式问题被反复提意见的人改一次这个配置能省掉后面无数口舌。自动替换是 plsql developer 11 里一个容易被忽视的功能类似输入法快捷键。比如输入sf加空格自动展开为select * from。在首选项的 Auto Replace 部分可以自定义规则把常用的查询骨架、更新模板、删除模板都放进去。保存后在 SQL 窗口直接敲sf加空格就会变成完整的语句写报表 SQL 能快不少。我个人的规则表里有几条一直留着sf是查询骨架ct是建表语句开头ud是更新语句的 where 防呆模板。4.2 连接配置多环境切换与连接文件位置plsql developer 11 的连接信息默认保存在 user.prefs 文件里。备份这个文件等于备份了所有连接配置换电脑时复制过去就能免配置。多环境切换时建议给每个连接单独命名并在名字里注明“只读”“生产”“开发”减少误操作。这个文件同时保存窗口布局和格式化设置算是工具的后悔药。连接窗口下方的 Browse 按钮可以连接 Oracle 目录服务但日常开发一般用不上。如果你的环境要走跳板机或堡垒机网络访问方式比较特殊直接在本机配端口转发就行工具里不用做额外设置。需要注意的是一次只能对一个连接做调试跨库关联查询要通过 dblink生产环境一般不允许测试库要做好这方面的限制说明。4.3 快捷键常用操作无需鼠标值得记的快捷键F8 单步、F9 运行/调试、F5 执行计划、CtrlEnter 执行当前 SQL、CtrlT 格式化 SQL。逐个在测试环境试一遍形成肌肉记忆后写代码和查问题的速度会有明显提升。快捷键都可以在首选项里改如果之前用的是其他 IDE可以把键位改成一致的降低切换成本。快捷键作用使用场景F8单步调试一行一行看逻辑F9开始调试 / 运行到断点进入或继续调试会话F5生成执行计划查看 SQL 性能CtrlEnter执行当前 SQL日常查询CtrlT格式化 SQL代码评审前统一风格这里有个容易被忽略的细节F9 既是“运行到下一个断点”也是“开始调试”取决于当前有没有调试会话。如果你只是想快速跑一段语句不想进调试模式用 F9 可能会卡在某个断点上。这种情况按一下 F8 或者直接 ShiftF9 跑完即可不要误以为工具卡死了。5. 用 plsql developer 11 的踩坑记录连接、乱码与调试器失灵的排查思路5.1 连接报 ORA-12541 或 ORA-12154现象启动工具后输完账号密码点连接登录窗口报监听错误或者提示无法解析连接标识符。原因一般是客户端 tnsnames.ora 里的网络服务名与数据库监听不一致或者监听服务没启动。解决先在本机命令行执行tnsping 服务名看是否能通如果不通找到 Oracle 客户端的 tnsnames.ora检查 host、端口、service_name 三项改完重启工具。不要用 IP 乱试因为服务名错误和监听没起来是两回事得先分清。5.2 中文乱码NLS_LANG 与数据库字符集不一致现象表中的中文数据显示成问号或方框写入中文后变成乱码。原因百分之八十是客户端环境变量 NLS_LANG 指定的字符集和数据库不一致。解决先查数据库字符集再设置客户端 NLS_LANG。Windows 环境下通常需要设置系统环境变量设置后重启 plsql developer。这里要特别注意数据库如果是 AL32UTF8客户端也设成 AL32UTF8数据库如果是 ZHS16GBK客户端就设成 ZHS16GBK。混着用偶尔正常偶尔乱码那才叫玄学。5.3 调试器不进断点或单步跑飞现象F9 运行后断点没触发或者单步时执行顺序看起来和源码完全不一致。原因通常是当前调试的代码版本和编译后的对象版本不一致或者过程被设为自治事务。解决先在对象浏览器里对过程执行 Compile和数据库中的编译时间比对确认一致后再进 Test 窗口。如果还不行把工具缓存目录里的临时文件清掉重启。这个现象在对象被其他同事重新编译过后特别常见属于多人在同一套库开发的经典翻车现场。5.4 执行计划显示全表扫描实际却很快现象F5 显示全表扫描实际执行毫秒级怀疑计划生成出了问题。原因通常是统计信息过期或采样不准也可能是因为查询里用了绑定变量窥探第一次执行时的变量值影响了计划选择。解决对相关表重新收集统计信息再重新生成计划。如果业务确实只需要查最近几天的数据可以考虑加分区而不是指望优化器每次都能自动选好。这条也解释了为什么同一个 SQL 在测试库快、生产库慢——两边统计信息不一样。5.5 对象右键菜单里 Test 选项是灰色的现象明明连上了库对象浏览器里右键某个过程Test 菜单却是灰的。原因通常是当前连接用户的权限不够没有该对象的调试权限或者该对象处于 invalid 状态。解决先用select status from user_objects where object_name ...确认对象是否有效无效就先编译再确认当前用户是否有 execute 权限没有就请 DBA 授权。最后一点是纯经验如果是同义词指向别的 schema 下的对象右键同义词时 Test 有时也会灰这种情况要到原始 schema 下去操作。6. 进阶用法把 plsql developer 11 当成轻量级 IDE 用6.1 测试窗口的批量数据构造Test Window 除了调试也是批量构数的地方。用一个匿名块循环插入测试数据比手动 insert 快得多而且能精确控制分布。比如你要造一万条订单数据日期集中在最近三个月金额在 100 到 1000 之间随机一段循环就能解决。构数时记得把表的主键和唯一约束先考虑清楚不然插入到一半报错还得清掉重来。6.2 结构化对比与导出给代码评审留一份证据对象浏览器里可以选中两个同类型对象做 Compare差异会逐行显示适合版本升级时确认变更点。也可以把源码导出成指定格式归档在版本库里。这个习惯对多人协作项目很重要评审口头说“改了几行”全靠截图没意义把对比结果导出来谁改了什么一目了然。6.3 匿名块与事务控制临时线上修复的正确姿势线上紧急修数时很多人喜欢直接在 SQL 窗口写 update 然后 commit。这是很危险的操作。正确做法是在 Test Window 里用一个匿名块先 select 验证行数再 update全程不提交确认影响行数符合预期后再手动提交。plsql developer 11 窗口下方有 Commit 和 Rollback 按钮使用起来很直观。我早年吃过一次亏生产环境一条 update 忘记写 where 条件直接清了整张表数据从那以后再也不敢让任何变更裸奔。现在的习惯是无论多简单的改动一律先在匿名块里用 select 带同样的 where 条件查一遍确认行数不超过预期再执行变更最后提交。这个习惯救过我很多次也推荐给你。希望帮到你。本文还有配套的精品资源点击获取