
Oracle实验四:PL/SQL编程实验指南
下载需积分: 24 | 1.1MB |
更新于2024-07-16
| 200 浏览量 | 举报
收藏
Oracle实验四PL/SQL编程
Oracle实验四PL/SQL编程是Oracle数据库管理系统中的一种编程语言,用于编写存储过程、存储函数和触发器等高级数据库对象。该实验的目的是掌握PL/SQL语句块、PL/SQL的基本语法、PL/SQL的控制结构,以及PL/SQL块中使用复合数据类型和游标的方法。
一、PL/SQL语句块
PL/SQL语句块是Oracle数据库管理系统中的一种编程单元,由 declare、begin、exception 和 end 四部分组成。Declare 部分用于声明变量和游标,Begin 部分用于执行 SQL 语句和 PL/SQL 语句,Exception 部分用于处理异常,End 部分用于结束语句块。
在本实验中,我们定义了一个包含声明、执行和异常处理的语句块,以查询 EMP 表中职工号 7788 的工资为例。首先,我们声明一个变量 v_sal,类型为表中对应属性的类型,用 %type 声明。然后,在 Begin 部分,我们写了一个 Select 语句,查询 EMP 表中职工号 7788 的工资,并将结果存储在 v_sal 变量中。接着,我们进行 If 判断,如果 v_sal 小于 3000,则执行 Update 语句,把工资更改为 3000。最后,在 Exception 部分,我们处理 NO_DATA_FOUND 异常,输出没有该员工的信息。
二、PL/SQL基本语法
PL/SQL 的基本语法包括变量声明、赋值语句、控制结构、游标和异常处理等。变量声明用于声明变量的名称和类型,赋值语句用于将值赋给变量,控制结构包括 IF 语句、LOOP 语句和 CASE 语句等,用于控制程序的执行流程。游标用于遍历查询结果,异常处理用于处理程序中的错误。
在 PL/SQL 中,我们可以使用 %type 声明变量的类型,例如:`declare v_sal emp.sal%type;` 这里,v_sal 变量的类型为 emp 表中的 sal 属性的类型。我们也可以使用 Assign 语句赋值给变量,例如:`v_sal := 3000;` 这里,我们将 v_sal 变量的值赋为 3000。
三、PL/SQL控制结构
PL/SQL 控制结构包括 IF 语句、LOOP 语句和 CASE 语句等。IF 语句用于根据条件执行不同的分支,例如:
```plsql
if v_sal < 3000 then
update emp set sal = 3000 where empno = 7788;
end if;
```
这里,我们根据 v_sal 变量的值判断,如果小于 3000,则执行 Update 语句。
LOOP 语句用于重复执行某个语句块,例如:
```plsql
loop
fetch c1 into v_sal;
exit when c1%notfound;
dbms_output.put_line(v_sal);
end loop;
```
这里,我们使用游标 c1 遍历查询结果,并将结果输出到屏幕上。
CASE 语句用于根据不同的条件执行不同的分支,例如:
```plsql
case
when v_sal < 2000 then
dbms_output.put_line('低工资');
when v_sal < 3000 then
dbms_output.put_line('中等工资');
else
dbms_output.put_line('高工资');
end case;
```
这里,我们根据 v_sal 变量的值判断,并输出相应的信息。
四、PL/SQL块中使用复合数据类型和游标
PL/SQL 块中可以使用复合数据类型和游标来存储和处理数据。例如,我们可以使用 Record 类型来存储多个变量,例如:
```plsql
declare
type emp_rec is record (empno number, ename varchar2(10));
v_emp_rec emp_rec;
begin
select empno, ename into v_emp_rec from emp where empno = 7788;
dbms_output.put_line(v_emp_rec.ename);
end;
```
这里,我们使用 Record 类型来存储 empno 和 ename 两个变量,并将其赋值给 v_emp_rec 变量。然后,我们使用 Select 语句将查询结果存储在 v_emp_rec 变量中,并输出 ename 的值。
我们也可以使用游标来遍历查询结果,例如:
```plsql
declare
cursor c1 is select * from emp where empno = 7788;
v_emp_rec c1%rowtype;
begin
open c1;
loop
fetch c1 into v_emp_rec;
exit when c1%notfound;
dbms_output.put_line(v_emp_rec.ename);
end loop;
close c1;
end;
```
这里,我们使用游标 c1 遍历查询结果,并将结果输出到屏幕上。
五、PL/SQL异常处理
PL/SQL 异常处理用于处理程序中的错误。例如,在我们的实验中,我们处理了 NO_DATA_FOUND 异常,输出没有该员工的信息。我们可以使用 Exception 部分来处理异常,例如:
```plsql
begin
select sal into v_sal from emp where empno = 7788;
exception
when no_data_found then
dbms_output.put_line('There is no such employee');
end;
```
这里,我们使用 Exception 部分来处理 NO_DATA_FOUND 异常,并输出没有该员工的信息。
六、存储过程、存储函数和触发器
存储过程、存储函数和触发器是 Oracle 数据库管理系统中的高级数据库对象。存储过程是一种可以执行多个 SQL 语句的程序,存储函数是一种可以返回值的程序,触发器是一种可以在数据库中自动执行的程序。
在本实验中,我们学习了如何创建存储过程、存储函数和触发器,以及如何使用它们来管理数据库。我们也学习了如何使用 PL/SQL 语句块来编写存储过程、存储函数和触发器。
七、实验总结
本实验我们学习了 PL/SQL 语句块、PL/SQL 基本语法、PL/SQL 控制结构、PL/SQL 块中使用复合数据类型和游标、PL/SQL 异常处理,以及存储过程、存储函数和触发器。我们通过实验和实践,掌握了 PL/SQL 编程的基本技能,为后续的数据库管理和开发打下了坚实的基础。
相关推荐








理木客
- 粉丝: 1w+
最新资源
- xwork 2.0.7版本源代码包下载
- VB与SQL打造宾馆管理系统教程
- 掌握数组边界:VB中LBound与UBound函数的使用
- VB增强搜索插件 v2.6.0.79版本升级解析
- CSS全层布局样例教程:从入门到精通
- 华为编程规范深度解析及实践案例
- 基于Struts框架的教材订购系统开发与实践
- 初学者指南:DataGridView列子实例讲解
- ASP自定义文字AJAX刷新验证码的实现方法
- 基于JSP和SQL2000的阳光超市管理系统开发
- 热学第二版课件及习题集
- Java SE中文帮助文档(CHM格式)下载
- Delphi与CB软件的BusinessSkin皮肤资源包
- Visual C++串口数据通信实例教程
- Axis_1.4 API文档的HTML格式解决方案
- 36万条详尽IP数据,一键导入MySQL数据库脚本
- 《数据结构1800题》习题及答案解析
- SRVINSTW-v1.00H系统服务管理工具详细介绍
- C++实现数值算法:矩阵分解与高斯消去法探讨
- 轻松检测U盘速度:EasySPEED软件使用指南
- 魔兽争霸显血改建工具及源码下载
- 校友录系统开发设计的毕业项目探索
- 深入分析PCI总线原理及仲裁机制
- ACCP5.0 s1 C# 课程第1-3章课后作业解析