第三章 PL/SQL介绍
实验指导
实验目标:
能够使用PL/SQL各种控制结构。能够使用游标,能够创建程序包。
第一部分 练习指导(60分钟)
练习1:使用条件控制 问题
某公司决定向职员发放奖金,奖金是根据职员所在的部门代码来发放的,如果部门代码为“10”,奖金为1000元;部门代码为“20”,奖金为800元,部门代码为“30”,奖金为600元,请设计解决方案。
解决方案
(1) 启动“SQL Plus”,以scott用户登录数据库。 (2) 在sql提示符中输入”set serveroutput on”。 (3) 在Sql Plus中输入下列代码。
以上代码提示用户输入职员代码。代码将显示消息“PL/SQL 过程已成功完成”。使用select语句来检索更新后的行。
练习2:使用循环控制
在sql提示符中输入以下代码,并查看执行结果。
练习3:循环游标的工作原理
问题
要求编写一段代码用以显示部门名称和次部门的所有职员的姓名。
解决方案
(1) 启动Sql Plus,用scott登录数据库。 (2) 在sql*plus中输入以下代码。
输出结果如下图所示。
练习4:创建程序包 问题
要求创建用于输入新职员的程序包,并确保新职员的数据存在于数据库中。 分析
编写在emp表中添加新职员的记录,须在程序包中创建过程,以便在emp表中插入新职员的信息。创建函数接受empid已检查职员是否已经存在,如果已存在,则显示消息“职员已存在”。 解决方案
(1) 启动sql*plus,已scott用户登录,输入以下代码。
(2) 输入以下代码以创建程序包主体。
要执行程序包中的过程,请输入以下命令。
要调用程序包中的函数,请输入以下命令。
第二部分 练习指导(40分钟)
1.编写一个程序包,包含有两个过程和一个函数,第一个过程根据职员编号
打印姓名,第二个过程根据编号打印职员薪水。函数根据职员编号返回职员的就职年份。
提示:使用scott用户的emp表。 2.编写一个程序,显示从2到100的素数。 提示:使用for循环
第三部分 作业
1. 使用上一章创建的学生信息表,编写函数接受学生的学号,并一次计算该生的平均成绩。 2. 编写一个程序,根据学生得分显示成绩。如果得分大于或等于75,则显示“优异“,如果得分大于或等于60,则显示“一等”,如果得分小于60,则显示“二等”。
3. 编写一段代码,用以提示用户输入姓名。此代码应检查用户输入的姓名的长度。如果长度小于2,则代码应引发异常并显示消息“请正确输入姓名”。否则显示消息“欢迎”。
4. 使用显示游标编写一个程序,以显示Vendor_master和order_master表中的orderno、odate、del_date和vencode。

