实验二plsql编程实验报告

实验二plsql编程实验报告

ID:35222119

大小:55.00 KB

页数:4页

时间:2019-03-22

实验二plsql编程实验报告_第1页
实验二plsql编程实验报告_第2页
实验二plsql编程实验报告_第3页
实验二plsql编程实验报告_第4页
资源描述:

《实验二plsql编程实验报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、课程名称:ORACLE数据库系统及应用成绩评定:湖南第一师范学院信息科学与工程系实验报告实验项目名称: 实验二:PL/SQL编程 指导教师:学生姓名:学号:专业班级:实验项目类型:设计实验地点:实验时间:年月日一、实验目的与要求:1、掌握PL/SQL程序设计的基本知识;2、掌握PL/SQL中SELECT语句和DML语句的正确使用方法; 3、掌握存储过程、函数、游标、触发器与包的创建与使用。二、实验环境:(硬件环境、软件环境)1.硬件环境:奔ⅣPC。2.软件环境:Windows2000操作系统,Oracle9i。三、实验内容:(原理、操作步骤、程序代码等)任务:1、编写

2、存储过程,根据用户输入的部门编号实现在PL/SQL中逐行显示emp表中该部门员工的工资级别。工资级别是:当工资为空时,为空,工资在1000元以下的为‘低’,在1000和3000之间的为‘中’,高于3000元的为‘高’。要有异常处理(该部门编号不存在)。createorreplaceprocedurereview_ep(v_deptnoindept.deptno%type)iscursorc1isselect*fromempwhereemp.deptno=v_deptno;record1emp%rowtype;deptno_not_foundexception;begi

3、nopenc1;fetchc1intorecord1;if(notc1%found)thenraisedeptno_not_found;endif;whilec1%foundloopifnvl(record1.sal,0)<1000thendbms_output.put_line(record1.ename

4、

5、'工资低');elsifnvl(record1.sal,0)<3000thendbms_output.put_line(record1.ename

6、

7、'工资中等');elsedbms_output.put_line(record1.ename

8、

9、'工资高');e

10、ndif;fetchc1intorecord1;4endloop;closec1;exceptionwhendeptno_not_foundthendbms_output.put_line('deptnonotfound');end;2.有这么一张表temp1,他只有一个number(8)的字段no,由于在创建表时忘记设置主键约束,导致表中有很多重复的记录。请你编写一个存储过程,将表中重复的记录保留一个,删除其余的。createorreplaceproceduremypro1iscursorv_cursorisselectdistinct*fromtemp1;f_no

11、temp1.no%type;beginopenv_cursor;fetchv_cursorintof_no;deletefromtemp1;whilev_cursor%foundloopinsertintotemp1values(f_no);fetchv_cursorintof_no;endloop;closev_cursor;end;3.编写一个存储函数,用于判断DEPT 表中某一编号的部门是否存在,若存在此部门编号,则返回TRUE,否则返回FALSE。Createorreplacefunctionjudge_dept(v_deptnodept.deptno%typ

12、e)returnbooleanisv_deptno2dept.deptno%type:=-1;beginselectdeptnointov_deptno2fromdeptwheredeptno=v_deptno;if(v_deptno2<>-1)thenreturntrue;elsereturnfalse;endif;end;4、编写一过程,调用第3题的函数判断某一编号的部门是否存在,存在则输出该部门员工的姓名、工作,否则提示不存在此部门或此部门无员工。createorreplaceproceduredno(v_deptnodept.deptno%type)iscur

13、sorc1isselect*fromempwheredeptno=v_deptno;record2emp%rowtype;v_judgeboolean:=false;beginv_judge:=judge_dept(v_deptno);if(v_judge)then4openc1;fetchc1intorecord2;whilec1%foundloopdbms_output.put_line(record2.ename

14、

15、''

16、

17、record2.job);fetchc1intorecord2;endloop;closec1;elsedbms_outp

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。