使用 Oracle SQL Developer 开发和调试 PL/SQL
2025-05-06 本站作者 【 字体:大 中 小 】
使用 Oracle SQL Developer 开发和调试 PL/SQL
目的
本教程介绍如何使用 Oracle SQL Developer 创建、运行以及调试 PL/SQL 过程。
所需时间
大约 30 分钟。
概述
Oracle SQL Developer 是一个免费的图形工具,可提高工作效率并简化数据库开发任务。您可以使用 Oracle SQL Developer 浏览数据库对象、运行 SQL 语句和 SQL 脚本,以及编辑和调试 PL/SQL 语句。您还可以运行所提供的任何数量的报表,以及创建和保存您自己的报表。本教程集中讨论 PL/SQL 的创建、编译、运行和调试。
前提条件
开始本教程之前,您应该:
创建数据库连接
要创建数据库连接,请执行以下步骤:
打开 SQL Developer。
在 Connections 选项卡中,右键单击 Connections 并选择 New Connection。
输入以下信息并单击 Test:
Connection Name:hr_orcl
Username:hr
Password:hr
选中 Save Password 复选框
Hostname:localhost
Port:1521
SID:orcl
连接状态测试成功,但尚未保存连接。要保存连接,单击 Connect。
保存该连接后,您可以在列表中看到该数据库。建立连接时,会自动打开一个 SQL Worksheet。在这个 SQL Worksheet 中,您可通过刚创建的连接执行 SQL。展开 hr_orcl 连接。
浏览数据库
您可通过 Oracle SQL Developer 中的 Connections 选项卡下的导航区来浏览和编辑数据库对象。本教程创建并调试 PL/SQL,使用 HR 模式中的多个表。在本主题中,您将查看本教程后面部分中将使用的表。执行以下步骤:
展开 Tables 节点。
单击 EMPLOYEES 表,查看表定义。
要查看数据,单击 Data 选项卡。
将显示 Employee 数据。单击导航器中的 DEPARTMENTS 表。
DEPARTMENTS 表有许多约束。选择 Constraints 选项卡。
单击 Edit 图标。
该对话框有多个选项卡,选择 Foreign Keys 选项卡。
查看外键,然后单击 OK。
通过在导航器中依次选中 JOBS 和 LOCATIONS 表并查看其定义和数据,验证这两个表存在且具有数据。
创建并编译 PL/SQL 过程
在本主题中,您创建、编辑并编译一个 PL/SQL 过程。执行以下步骤:
在 Connections 导航器中,右键单击 Procedures 节点以调用上下文菜单,然后选择 NEW PROCEDURE。
输入 EMP_LIST 作为过程名。然后单击 + 添加一个参数。双击该参数名,您可以将其值更改为 pMaxRows,然后将 VARCHAR2 更改为 NUMBER。单击 OK。
创建了该过程。
如果 Grants 选项卡处于活动状态,单击 Code 选项卡。
将以下 PL/SQL:
BEGIN NULL; END EMP_LIST;
替换为以下代码:
(您在中将文件解压缩到的目录中的 emp_cursor.sql 文件中也包含了此代码。)
CURSOR emp_cursor IS
SELECT l.state_province, l.country_id, d.department_name, e.last_name,
j.job_title, e.salary, e.commission_pct
FROM locations l, departments d, employees e, jobs j
WHERE l.location_id = d.location_id
AND d.department_id = e.department_id
AND e.job_id = j.job_id;
emp_record emp_cursor%ROWTYPE;
TYPE emp_tab_type IS TABLE OF emp_cursor%ROWTYPE INDEX BY BINARY_INTEGER;
emp_tab emp_tab_type;
i NUMBER := 1;
BEGIN
OPEN emp_cursor;
FETCH emp_cursor INTO emp_record;
emp_tab(i) := emp_record;
WHILE ((emp_cursor%FOUND) AND (i <= pMaxRows) LOOP
i := i + 1;
FETCH emp_cursor INTO emp_record;
emp_tab(i) := emp_record;
END LOOP;
CLOSE emp_cursor;
FOR j IN REVERSE 1..i LOOP
DBMS_OUTPUT.PUT_LINE(emp_tab(j).last_name);
END LOOP;
END;
注意 Oracle SQL Developer 对保留字的格式设置。要进一步设置代码的格式,右键单击以调用上下文菜单,然后选择 Format SQL。
单击工具栏中的 Save
按钮,编译 PL/SQL 子程序。
如果有任何编译错误,就会显示出来。
在导航其中展开 Procedures,可以看到 EMP_LIST。
注意,当 Oracle SQL Developer 检测到无效 PL/SQL 子程序时,Connections 导航器中该子程序的图标上会以红色的 X 来指示该状态。
Log 窗口中显示编译错误。只需双击一个错误,即可定位到该错误中报告的那一行。Oracle SQL Developer 还在右侧边列 (gutter) 中显示错误和提示。如果您将鼠标放在边列中每个红色方块上,将显示错误消息。
在本例中,错误消息指示 LOOP 语句中存在格式错误。仔细检查代码后,您会发现 WHILE 语句中多了一个圆括号。删除多余的圆括号。
单击 Compile for Debug 图标。
该过程编译成功。您现在可以运行该过程。
注意:如果您在 procedures 节点下该过程的图标上仍看到红色的 X,请单击刷新图标。图标上覆盖的绿色表明该过程已为调试而编译。如果图标上没有覆盖其他颜色,则意味着该过程已经过编译但不带有调试指令。这些是由首选设置和编译下拉列表选项控制的。SQL Developer 中的默认配置为“Compile for Debug”。
运行 PL/SQL 过程
创建并编译一个 PL/SQL 过程之后,您可以使用 Oracle SQL Developer 运行它。执行以下步骤:
在左侧导航器中,右键单击 EMP_LIST 并选择 Run。
该操作将调用 Run PL/SQL 对话框。Run PL/SQL 对话框允许您选择要运行的目标过程或函数(对程序包有用),并显示所选目标的参数列表。在 PL/SQL Block 文本区中,您可以看到 Oracle SQL Developer 用于调用所选程序而生成的代码。您可以使用该区域填充要传送到程序单元的参数并处理复杂的返回类型。
将 PMAXROWS := NULL; 更改为 PMAXROWS := 5; 然后单击 OK。
在 Running - Log 窗口中显示结果。
调试 PL/SQL 过程
Oracle SQL Developer 还支持使用 Oracle 数据库调试 PL/SQL。在本主题中,您调试一个 PL/SQL 过程、单步调试代码并在运行时修改值。执行以下步骤:
为了有助于调试,可在 Code 窗口中添加行号。单击边框,会出现 Toggle Line Numbers 提示。选择该选项。
通过在 OPEN emp_cursor; 语句所在行对应的代码左侧区中单击,可在 EMP_LIST 过程中设置一个断点。然后,单击 Debug 图标。
Debug PL/SQL 对话框应仍显示值 PMAXROWS = 5; 单击 OK。
如果未显示 Log 选项卡,则单击该选项卡。
调试器应在您设置断点处暂停。您现在可以控制执行流程、修改变量值以及执行其他调试函数。单击 Step Into
。
注意:您已被授予了 DEBUG CONNECT SESSION 和 DEBUG ANY PROCEDURE 用户权限,这样在调试时就不会出现以下错误消息了。
这将转至光标所在的第一行。再次单击 Step Into
。
您现在应该选择光标所在的第一行。第 3 次单击 Step Into
。
单击 Data 选项卡。
Data 窗口开始显示有限的变量列表,这些变量用在要执行的代码行中以及之前执行的代码中。
右键单击 DBMS_OUTPUT.PUT_LINE(emp_tab(j).last_name); 这行,然后选择 Run to Cursor。
展开 emp_tab >_ values > [1] > _value。您会看到表中给定记录的字段值。选中 LAST_ 字段。
右键单击 LAST_ 字段并选择 Modify Value。
将名称更改为别的内容,单击 OK。
选择 Debugging - Log 选项卡。
单击 Resume 图标
以允许 PL/SQL 运行直至完成。
查看修改后的值是否显示在 Log 窗口中。
总结
在本教程中,您学习了如何:
关于 Oracle |
| 招聘 | 联系我们 | 网站地图 | 法律声明 |使用条款 | 您的隐私权利

猜你喜欢

高富帅也买不到!盘点十大小众品牌跑车


小镇青年的逆袭:从“差等生”到合成《金刚川》


只为0.1%淘客服务的采集群


我校原创话剧《满仓》成功首演


物业动用维修基金要经过业主同意吗


2011版电压力锅维修手册.pdf


国际音乐人纷纷抢占北美演出市场,权志龙2017年巡演票房达780万美元


16万公里的宝马5系水管爆裂导致发动机高温,车主放弃维修


好色废柴渣?动漫后宫最无节操星座男!


奇幻星座之旅:探索十二星座的动漫魅力与艺术之美


央视点名“家电售后乱象” 西门子:解除与涉事公司合作


电梯15年必须报废规定


低压配电箱接线图及接线方法


高低压配电柜的安装过程


石料厂配电设施怎么配置?购买低压配电柜时要注意些什么?


投影仪如何清洁 投影仪怎么保养


木地板保养打蜡与翻新护理:延续温馨家居的诗意篇章


木地板翻新打蜡小妙招


使用Pythonista 脚本,手机端轻松安装ipa文件


北京通州电脑回收-价格一步到位
