杨玉玲实验七

上传人:豆浆 文档编号:768178 上传时间:2017-05-14 格式:DOC 页数:12 大小:353.50KB
返回 下载 相关 举报
杨玉玲实验七_第1页
第1页 / 共12页
杨玉玲实验七_第2页
第2页 / 共12页
杨玉玲实验七_第3页
第3页 / 共12页
杨玉玲实验七_第4页
第4页 / 共12页
杨玉玲实验七_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《杨玉玲实验七》由会员分享,可在线阅读,更多相关《杨玉玲实验七(12页珍藏版)》请在金锄头文库上搜索。

1、重庆文理学院软件工程学院实 验 报 告 册专 业:软件工程班 级:软件工程 1班_ _学 号:201258014009_ _姓 名:杨玉玲_ _课程名称:oracle 数据库指导教师:李瑞2014年 12月 22日实验序号 7 实验名称 创建过程和函数,游标实验地点 SC303 实验日期 2014年 12月 22日实验内容1.创建并执行一个过程,在 emp表中,显示销售员的个数。2.实现一个过程,完成对 emplouees表中 job_id为IT_PROG的员工salary的增加,增加额度为 800;3.实现一个函数,完成对 emplouees表中 job_id为IT_PROG的员工salar

2、y的增加,增加额度为 800,输出员工所在的部门收入的名次,增加额度作为参数传入。4.实现一个过程,查询 emplouees表中员工的平均工资,根据 job_id查询某个员工 salary是否大于或小于员工平均工资,job_id 作为参数传入。输出格式为:job_id salary avgSalary 大于/小于员工平均工资5.实现一个游标 cursor1,完成对 emplouees表的遍历;6.有 student表,chengji 表,利用隐式和显示游标,实现如下结果:Tom:java:89 struts:92 jsp/servlet:90Kite: java:89 struts:92 js

3、p/servlet:90John: java:89 struts:92 jsp/servlet:90create table student(sno number,sname varchar2(20),sage number);insert into student values(1,Tom,21);insert into student values(2,Kite,22);insert into student values(3,John,21);create table chengji(sno number,cources varchar2(10),score number(3);inse

4、rt into chengji values( 1,java,89);insert into chengji values( 1,struts,82);insert into chengji values( 1,jsp/servlet,90);insert into chengji values( 2,java,88);insert into chengji values( 2,struts,77);insert into chengji values( 2,jsp/servlet,98);insert into chengji values( 3,java,67);insert into c

5、hengji values( 3,struts,97);insert into chengji values( 3,jsp/servlet,78);实验过程及步骤1. 创建并执行一个过程,在 emp表中,显示销售员的个数。打开显示开关:set serverout on;创建过程:CREATE OR REPLACE PROCEDUREfind_empASempNumber number;BEGINselect count(*) INTO empNumber from EMPwhere JOB=SALESMAN;DBMS_OUTPUT.PUT_LINE(销售员人数是 | empNumber);EX

6、CEPTIONWHEN NO_DATA_FOUND THENDBMS_OUTPUT.PUT_LINE (当前表没有销售员);END find_emp;/执行过程:EXECUTE find_emp;2. 实现一个过程,完成对 emplouees表中 job_id为IT_PROG的员工 salary的增加,增加额度为 800;初始:CREATE OR REPLACE PROCEDUREaddSalaryASrowNumber number;BEGINupdate employees set SALARY=SALARY+800 where JOB_ID=IT_PROG; END addSalary;

7、/结果:3.实现一个函数,完成对 emplouees表中 job_id为IT_PROG的员工 salary的增加,增加额度为 800,输出员工所在的部门收入的名次,增加额度作为参数传入。执行前的结果是:创建函数:create or replace function func1(add_salary number) return intismingci number;sum_salary number;beginupdate employees set SALARY=SALARY+add_salary where JOB_ID=IT_PROG;select sum(SALARY) into su

8、m_salary from employees where JOB_ID=IT_PROG group by JOB_ID;select count(*) into mingci from (select job_salary from (select sum(SALARY) as job_salary from employees group by JOB_ID) where job_salary sum_salary);mingci := mingci + 1;return mingci;end;/执行函数:declaremc number;beginmc := func1(800);dbm

9、s_output.put_line(部门收入名次:第 |mc|名);end;/4.实现一个过程,查询 emplouees表中员工的平均工资,根据 job_id查询某个员工 salary是否大于或小于员工平均工资,job_id 作为参数传入。输出格式为:job_id salary avgSalary 大于/小于员工平均工资create or replace procedurequery_avgSal(emp_id NUMBER)as avg_salary number(6,2);emp_salary number;begin select avg(SALARY) into avg_salary

10、from employees;select SALARY into emp_salary from employees where EMPLOYEE_ID=emp_id;if emp_salaryavg_salary thenDBMS_OUTPUT.PUT_LINE(emp_id| |emp_salary| |avg_salary|大于员工平均工资 );elsif emp_salaryavg_salary thenDBMS_OUTPUT.PUT_LINE(emp_id| |emp_salary| |avg_salary|小于员工平均工资 );end if;end query_avgSal;/

11、结果:execute query_avgSal(200);execute query_avgSal(206);5.实现一个游标 cursor1,完成对 emplouees表的遍历;declareemp1 employees%rowtype;cursor cursor1 is select * from employees;beginopen cursor1;fetch cursor1 into emp1;while cursor1%found loopdbms_output.put_line(EMPLOYEE_ID:|emp1.EMPLOYEE_ID|FIRST_NAME:|emp1.FIRS

12、T_NAME|SALARY:|emp1.SALARY);fetch cursor1 into emp1;end loop;close cursor1;end;/6.有 student表,chengji 表,利用隐式和显示游标,实现如下结果:Tom:java:89 struts:92 jsp/servlet:90Kite: java:89 struts:92 jsp/servlet:90John: java:89 struts:92 jsp/servlet:90create table chengji2(sname varchar2(10),cources varchar2(50);declar

13、esno1 chengji.sno%type;sname1 student.sname%type;kc1 varchar2(50) := ;cources1 varchar2(20);score1 number;cursor cursor1 is select distinct(sno) from chengji;type refcur is ref cursor;cursor2 refcur;cursor3 refcur;beginopen cursor1;fetch cursor1 into sno1;while cursor1%found loopkc1 :=;open cursor2

14、for select cources,score from chengji where sno = sno1;fetch cursor2 into cources1,score1;open cursor3 for select sname from student where sno = sno1;fetch cursor3 into sname1;while cursor2%found loopkc1 := kc1| |cources1|:|score1;fetch cursor2 into cources1,score1;end loop;close cursor2;close cursor3;kc1 := :|kc1;insert into chengji2 values(sname1,kc1);commit;fetch cursor1 into sno1;end loop;close cursor1;end;/结果:实验结果及分析通过本次实验,学会了创建过程、函数,还有游标的使用,感觉本次实验比较有难度,实验耗时较长,知 识点的掌握还是不够熟练。教师评阅教师签名:李瑞 2014年12月22日

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号