实验六 PL/SQL编程基础
【实验目的】
1)掌握标量变量和复合变量的定义使用方法;
2)掌握控制语句的应用;
3)掌握游标的使用方法;
4)了解ORACLE中异常的使用方法。
【实验原理】
1. 控制语句  2. 游标  3. 异常处理 
【实验内容】
一、变量、控制语句、游标
[操作验证]
(1) 使用SQL/PLUS连接数据库,并删除该用户模式下的产品表products、订单表orders、订单详情表orderdetails
(2) 运行test2文件夹下的文件,用来创建员工表employees、产品表products、订单表orders、订单详情表orderdetails的表结构,同时添加各个约束。
(3) 运行test2文件夹下的等脚本文件,用以向数据表中插入记录。最后执行提交命令(commit)。
插入格式:@脚本文件路径
(4) ORDERDETAILS表中各个产品的总销量进行评定,若总销量大于等于50输出为“优秀”、40-49之间输出为“很好”、30-39之间输出“较好”、10-29之间输出“较差”、否则输出“很差”。
(5) 修改产品表中各类产品的单价,如果是1类产品,则单价提升10%2类产品提升15%易语言字符串转数组3类产品提升20%,其他类别单价不变。
(6) (选做题)有100个人围一圈,顺序排号,从第1个人开始报数,凡报到3的人退出圈,编写程序求出最后留下的是原来的第几号?(提示:使用记录表类型存储100个人的编号,并使用记录表类型的firstcountnextdelete方法完成程序)。
二、异常处理
[操作验证]
(1) 查询员工表employeeslastname(姓)列值为’ Robert’的员工信息,并输出员工编号employeeid、员工姓名(firstname|| ||lastname)、职务TitleOfCourtes等信息。并对该程序块作如下异常处理:如果该员工不存在,则插入新员工记录,记录自拟;如果存在多个姓为’ Robert’的员工,则输出所有姓为’ Robert’的员工编号employeeid、员工姓名(firstname|| ||lastname)、职务TitleOfCourtesy
存在多个姓为’ Robert’的员工时的运行结果:
(2) 编写一个程序块,向产品表中插入一条记录,当主键重复时,输出该主键值已存在 当产品名为空时,使用非预定义异常,输出违反了非空约束
(3) 对产品表中单价小于等于3元的产品的打折状态更新为1,如果没有到这样的产品则触发用户自定义异常,并提示”未到相应产品”,否则显示更新了几条信息。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。