下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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年河北资源环境职业技术学院高职单招职业适应性考试备考题库有答案解析
- 2026年桂林山水职业学院高职单招职业适应性测试备考试题有答案解析
- 2026年黑龙江交通职业技术学院高职单招职业适应性考试参考题库带答案解析
- 外贸公司2025年报关服务合同协议
- 土地租赁解除合同协议2025年
- 2026年安阳职业技术学院单招综合素质考试备考题库带答案解析
- 2026年黑龙江幼儿师范高等专科学校单招职业技能考试模拟试题带答案解析
- 2026年湖南环境生物职业技术学院单招综合素质考试备考题库带答案解析
- 2026年安徽粮食工程职业学院单招职业技能笔试备考题库带答案解析
- 体检结果保密合同协议2025年
- 物流企业仓储安全操作规程与培训教材
- 黄体酮破裂课件
- 结算审计踏勘现场实施方案详细版
- 手机玻璃工厂年终总结报告
- 全国大学生职业规划大赛《信息与计算科学》专业生涯发展展示
- 急诊科护士年终总结汇报
- 泵站维修施工方案
- 瓦斯发电安全规程培训课件
- 无人机生产线布局与空间规划方案
- 表没食子儿茶素没食子酸酯生物合成-洞察及研究
- 冻土区地下管网防冻胀施工技术方案
评论
0/150
提交评论