



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程名称:ORACLE数据库系统及应用 成绩评定: 湖南第一师范学院信息科学与工程系实验报告实验项目名称:实验二:PL/SQL编程 指导教师: 学生姓名: 学号: 专业班级: 实验项目类型: 设计 实验地点: 实验时间: 年 月 日一、实验目的与要求: 1、掌握 PL/SQL 程序设计的基本知识; 2、掌握 PL/SQL 中 SELECT 语句和 DML 语句的正确使用方法; 3、掌握存储过程、函数、游标、触发器与包的创建与使用。二、实验环境:(硬件环境、软件环境)1.硬件环境:奔 PC。2.软件环境:Windows2000 操作系统,Oracle 9i。三、实验内容:(原理、操作步骤、程序代码等)任务:1、 编写存储过程,根据用户输入的部门编号实现在 PL/SQL 中逐行显示 emp 表中该部门员工的工资级别。工资级别是:当工资为空时,为空,工资在 1000 元以下的为低,在 1000 和 3000之间的为中,高于 3000 元的为高。要有异常处理(该部门编号不存在)。create or replace procedure review_ep(v_deptno in dept.deptno%type)iscursor c1 is select * from emp where emp.deptno=v_deptno;record1 emp%rowtype;deptno_not_found exception;beginopen c1;fetch c1 into record1;if(not c1%found) then raise deptno_not_found;end if;while c1%found loopif nvl(record1.sal,0)1000 then dbms_output.put_line(record1.ename|工资低);elsif nvl(record1.sal,0)3000 then dbms_output.put_line(record1.ename|工资中等);elsedbms_output.put_line(record1.ename|工资高);end if;fetch c1 into record1;end loop;close c1;exception when deptno_not_found thendbms_output.put_line(deptno not found);end;2.有这么一张表temp1,他只有一个 number(8)的字段no,由于在创建表时忘记设置主键约束,导致表中有很多重复的记录。请你编写一个存储过程,将表中重复的记录保留一个,删除其余的。create or replace procedure mypro1 iscursor v_cursor is select distinct * from temp1;f_no temp1.no%type;begin open v_cursor; fetch v_cursor into f_no; delete from temp1 ; while v_cursor%found loop insert into temp1 values(f_no); fetch v_cursor into f_no; end loop; close v_cursor;end;3.编写一个存储函数,用于判断DEPT 表中某一编号的部门是否存在,若存在此部门编号,则返回 TRUE,否则返回 FALSE。Create or replace function judge_dept(v_deptno dept.deptno%type) return boolean isv_deptno2 dept.deptno%type:=-1;beginselect deptno into v_deptno2 from dept where deptno=v_deptno;if(v_deptno2-1) thenreturn true;else return false;end if;end;4、编写一过程,调用第3题的函数判断某一编号的部门是否存在,存在则输出该部门员工的姓名、工作,否则提示不存在此部门或此部门无员工。 create or replace procedure dno(v_deptno dept.deptno%type)iscursor c1 is select * from emp where deptno=v_deptno;record2 emp%rowtype;v_judge boolean:=false;beginv_judge:=judge_dept(v_deptno);if(v_judge) thenopen c1;fetch c1 into record2;while c1%found loopdbms_output.put_line(record2.ename| |record2.job);fetch c1 into record2;end loop;close c1;else dbms_output.put_line(deptno not found);end if;end;5、编写一个触发器,在 DEPT 表执行 INSERT 语句后被激发,此触发器将新部门的编号(deptno)、名称(dname)及执行此操作的用户(USER)、当时的日期(SYSDATE)插入 N_DEPT 表(注:此表已建好,表结构为 N_DEPT(DEPTNO NUMBER(4),DNAME VARCHAR2(10), UNAME VARCHAR2(20),INDATE DATE)。create table n_dept(deptno number(4),dname varchar2(10),uname varchar2(20),indate date);create or replace trigger del_emp after insert on dept for each row begin insert into n_dept values(:new.deptno,:new.dname,user,sysdate);end;insert into dept values(60,MMMM,hunan);6、创建触发器 CHECK_SAL,禁示对职务为 CLERK 的雇员的工资修改值超出 1000 至 2000 的范围,即CLERK 职务员工的修改后工资值只能在 10002000 之间。要求测试该触发器。create or replace trigger update_empafter update on empfor each rowbeginif(:new.sal not between 1000 and 2000 and :old.job=CLERK)thenrollback;end if;end;7、编写一个管理雇员信息的包 emp_manapack。包中有过程或函数如下:1)通过员工编号计算出员工应交个人所得税款2)通过员工编号插入员工3)通过员工编号删除员工4)按工资升序输出所有雇员的应交所得税清单create or replace package emp_man isrecord2 emp%rowtype;function pers(v_no emp.empno%type)return number;procedure counts;end emp_man;create or replace package body emp_man isfunction pers(v_no emp.empno%type)return number isv_sal number:=0;begin select sal*0.1 into v_sal from emp where empno = v_no;return v_sal;end;procedure counts iscursor cursor2 is select * from emp ;record3 emp%rowtype;v_sal2 number:=0;begin open cursor2;fetch curs
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- output-10-造纸工艺工程师(涂布)岗位面试问题及答案
- 电诈防范知识培训课件
- 高速车道基础知识培训课件
- 电解池工作原理
- 电芯电池基础知识培训
- 电脑钉钉直播显示课件
- 湖南省岳阳市汨罗市第一中学2025-2026学年高二上学期开学考试物理试卷
- 建设项目环境影响评价服务合同
- rap考试题及答案
- pcr考试试题及答案
- 无人机测绘中职教学计划
- 肿瘤二代测序基因检测技术应用与进展
- 上海同济医院管理制度
- 2025年高考北京卷语文真题作文记叙文深度点评与分析
- 小学生队形队列班会课件
- 地中海贫血护理业务查房
- 华科版七年级信息技术《身边信息-用心感知》
- 职业技术学院运动健康指导专业人才培养方案
- T/CIE 165-2023企业级固态硬盘测试规范第1部分:功能测试
- 离婚后小孩学费协议书
- 初中学校学科竞赛策划工作计划
评论
0/150
提交评论