下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验十 PL/SQL 高级应用实验目的掌握 PL/SQL 高级应用,包括过程及函数的创建与使用。实验内容1.过程的创建与使用2.函数的创建使用实验步骤1.创建一个过程 SELECT_DEPT,以部门号为 IN 参数,查询显示该部门的平均工资,并显示输出该部门中比平均工资高的员工号、员工名,如果部门号对应出“该部门不存在,请重新输入。”;不存在,提示输测试调用:编写一个的相关内容。PL/SQL 块调用过程 SELECT_DEPT,查询部门号为 30 部门create or replace procedure SELECT_DEPT(fied_deptno dept.deptno%type) as
2、deptno_temp dept.deptno%type; avg_sal emp.sal%type;beginselect deptnoo deptno_temp from dept where deptno=fied_deptno;select round(avg(sal)o avg_sal from emp wheredeptno=fied_deptno;dbms_output.put_line(fied_deptno |号部门平均工资为 | avg_sal); dbms_output.put_line(*);for v_emp in (select * from emp where s
3、alavg_sal)loopdbms_output.put_line(v_emp.empno | end loop;exception| v_emp.ename);when no_data_found then dbms_output.put_line(该部门不存在,请重新输入。); end;begin SELECT_DEPT(20);end;2. 编写过程 UPDATE_SAL,实现涨工资的功能,输入参数为员工,如果他的工作年限是 10-15 年,工资增加 1300,工作年限是 16-20 年工资增加 2000,年限超过 20 年工资增加 3000;输出参数为员工名和现在的工资数目;测试调用
4、:编写一个PL/SQL 块调用过程 UPDATE_SAL,实现员工“SMITH”及“CLARK”的工资增长,并显示输出工资增长前后的数目。create or replace procedure UPDATE_SAL(fied_ename emp.ename%type) asename_temp emp.ename%type; add_temp emp.sal%type;sal_temp emp.sal%type;nian number:=0; beginselect trunc(months_betn(sysdate,hiredate)/12)o nian from emp where ena
5、me=fied_ename;select salo sal_temp from emp where ename=fied_ename;if nian 9 and nian 16 and nian 20 then add_temp:=3000;end if;update emp set sal=sal+ sal_temp where ename=fied_ename;dbms_output.put_line(fied_ename | sal_temp:=sal_temp+add_temp; dbms_output.put_line(fied_ename | end;begin UPDATE_SA
6、L(CLARK);end;修改前工资为 | sal_temp);修改后工资为 | sal_temp);3. 创建一个过程 FIND_NUMBER,以部门号为参数,返回该部门的总人数与该部门MANAGER 对应的员工名,如果部门号对应新输入。”;测试调用:编写一个PL/SQL 块调用的总人数及经理名并显示输出。不存在,提示输出“该部门不存在,请重过程 FIND_NUMBER,查询部门号为 10 部门create or replace procedure FIND_NUMBER(fied_deptno dept.deptno%type) asdeptno_temp dept.deptno%type
7、; count_emp number; manager_ename emp.ename%type;beginselect deptno select count(*)select enameo deptno_temp from dept where deptno=fied_deptno;o count_emp from emp where deptno=fied_deptno;o manager_ename from emp where deptno=fied_deptno and job=MANAGER;dbms_output.put_line(fied_deptno | 号部门总人数为 |
8、 count_emp); dbms_output.put_line(MANAGER: | manager_ename);exceptionwhen no_data_found then dbms_output.put_line(该部门不存在,请重新输入。); end;begin FIND_NUMBER(20);end;4. 创建一个以部门号为参数,返回该部门最高工资的函数 RETURN_MAXSAL;测试调用:编写一个PL/SQL 块循环游标遍历 EMP 表,取得部门号赋给该函数,并依次打印函数返回值。create or replace function RETURN_MAXSAL(fied_
9、deptno emp.deptno%type)return emp.sal%type asmax_sal emp.sal%type; beginselect max(sal)o max_sal from emp where deptno=fied_deptno; return max_sal;end ; declaremax_sal emp.sal%type; beginfor deptno_emp in (select deptno from emp)loopselect RETURN_MAXSAL(deptno_emp.deptno) dbms_output.put_line(max_sa
10、l);end loop;end;o max_sal from dual;5. 编写一个函数 FUNC_FIND,输入参数是员工号,功能是如果该职工的职务是经理,而且工资大于 5000,返回(工资+工资*20%),否则返回(工资+工资*40%);测试调用:编写一个次打印函数返回值。PL/SQL 块循环游标遍历 EMP 表,取得员工号赋给该函数,并依create or replace function FUNC_FIND(fied_empno emp.empno%type) return emp.sal%type astemp_job emp.job%type; temp_sal emp.sal%type; add_sal emp.sal%type;beginselect job,salo temp_job,temp_sal from emp where empno=fied_empno;if temp_job=MANAGER and temp_sal5000 then add_sal:=temp_sal*1.2; else add_sal:=temp_sal*1.4;end if;return add_sal; end ;de
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026海南三亚市全国选聘市投资促进局局长1人备考题库及答案详解(必刷)
- 2026河南洛阳伊川县彭婆镇中心卫生院招聘8人备考题库及参考答案详解1套
- 无人机行业应用(航测)电子教案 1.3 摄影测量介绍
- 2026年吉州区综合交通运输事业发展中心面向社会公开招聘工作人员的备考题库有答案详解
- 2026四川宜宾筠连县沐盛农业开发有限公司招聘1人备考题库附答案详解(培优)
- 2026上海复旦大学公共卫生学院招聘科研实验中心科研助理岗位1人备考题库含答案详解(培优)
- 2026广西北海市图书馆招录公益性岗位人员1人备考题库含答案详解(典型题)
- 2026天津市消防救援总队水上支队招录政府专职消防员95人备考题库带答案详解
- 2026浙江温州市第三十一中学编外护士招聘1人备考题库及答案详解(各地真题)
- 2026福建省龙岩中龙科技有限公司招聘5人备考题库完整参考答案详解
- 上海农商银行2025招聘笔试真题及答案解析
- 五级应急救援员职业鉴定考试题库(含答案)
- 2025年吉林省综合类事业单位招聘考试公共基础知识真题试卷及参考答案
- 2025年国家林业和草原局招聘考试重点知识点梳理
- 院内VTE预防护理新进展
- 单晶高温合金雀斑缺陷:形成机制、演化规律及对持久性能的影响探究
- GB/T 11417.1-2025眼科光学接触镜第1部分:词汇、分类和推荐的标识规范
- 吊车专项施工方案(3篇)
- (2025年标准)中风公司补偿协议书
- 防范围标串标行为操作指南
- 休闲农业与乡村旅游课件
评论
0/150
提交评论