课堂讨论3精要
1-* 成都信息工程大学 软件工程学院 成都信息工程大学 软件工程学院 课后思考 3 1、使用递归查询从emp获取指定编号的员工及其下属的所有信息 select * from emp start with empno=7782 connect by prior empno=mgr; 2、编写递归过程(不使用递归查询)输出指定编号的员工及其下属的所有信息 测试调用sql如下: call proc_getEmpsFormMgr(7839); create or replace procedure proc_getEmpsFormMgr (p_empno emp.empno%type) is v_emprec emp%rowtype; cursor cur_emp is select * from emp where mgr= p_empno; begin --1 获取当前编号对应员工信息 select * into v_emprec from emp where empno= p_empno; dbms_output.put_line(姓名是:||v_emprec.ename|| 工作是: ||v_emprec.job|| 工资是:||v_emprec.sal); --2 遍历当前员工的下属员工信息 for v_emprec in cur_emp loop proc_getEmpsFormMgr(v_emprec.empno);--递归调用 end loop; end proc_getEmpsFormMgr; 3、编写递归过程(不使用递归查询)获取指定编号员工的所有上级员工名称字符串 测试匿名块定义如下: declare v_empno emp.empno%type:=Empno; v_mgrnames varchar2(200):=; begin proc_getEmpMgrs(v_empno,v_mgrnames); if v_mgrnames= then dbms_output.put_line(指定员工没有上级管理人员); else dbms_output.put_line(指定员工上级管理人员为:||v_mgrnames); end if; end; create or replace procedure proc_getEmpMgrs (p_empno in emp.empno%type,p_mgrnames in out varchar2) is v_emprec emp%rowtype; v_mgrno emp.empno%type; v_mgrname emp.ename%type:=; begin --1 获取当前编号员工的管理员编号 select mgr into v_mgrno from emp where empno= p_empno; --2 如果当前有管理员,获取管理员信息 if v_mgrno is not null then select ename into v_mgrname from emp where empno= v_mgrno; if p_mgrnames is null or p_mgrnames= then p_mgrnames:=v_mgrname; else p_mgrnames:=p_mgrnames||,||v_mgrname; end if; --3 递归调用 proc_getEmpsForMgr(v_mgrno,p_mgrnames); end if; end proc_getEmpMgrs; 4、编写一个为职工普调工资的函数。 涨工资的方法是:工资低于1000元的职工,每人增加10%,工资大于或等于1000元的职工,每人增加5%。 函数调用时,输入工资总额限定金额。如果工资总额超过了限定金额,撤销所有涨工资的操作,返回0; 如果工资总额没有超过限定金额,返回工资总额。 (请使用游标和控制语句完成函数) 测试匿名块定义如下: declare v_sal_sum number:=0; v_sal_sum_max number:=工资总额限定金额:; begin v_sal_sum:=fun_UpSal(v_sal_sum_max); if v_sal_sum=0 then dbms_output.put
您可能关注的文档
- 如何做一个文明的中学生要点.ppt
- 如何做一个销售要点.pptx
- 课堂新坐标2016_2017学年高中物理第3章磁场2磁感应强度课件精要.ppt
- 课堂新坐标2016_2017学年高中物理第3章磁场4通电导线在磁场中受到的力课件精要.ppt
- 课堂新坐标2016_2017学年高中化学第4章保护生存环境第2节爱护水资源第2课时改善水质课件精要.ppt
- 课堂新坐标2016_2017学年高中物理第1章静电场8电容器的电容课件精要.ppt
- 如何做一名合格的品管员要点.ppt
- 如何做一名合格的健康教育宣传员(NXPowerLite)要点.ppt
- 如何做一名好记者要点.ppt
- 如何做一名成功的店长要点.ppt
最近下载
- 制造业信息化战略规划实施与优化-PDM.docx VIP
- 那智不二越机器人flexgui toolbox操作说明书.pdf VIP
- 智慧工厂-智慧工厂解决方案.docx VIP
- 高中化学解题方法归纳:和量法.doc VIP
- 译林牛津新版高中英语(必修1-3)单词表.pdf VIP
- 包装有限公司分切机安全风险分级清单.docx VIP
- 重庆市西南大学附属中学2025届高三下学期二诊模拟考试物理试卷 含解析.docx VIP
- 【高中英语】《星火英语同步词汇》抗遗忘速记手册.docx VIP
- 成都市锦江区2026届初三一诊(暨期末考试)数学试卷(含答案).docx
- 三坐标 培训教程.pptx VIP
原创力文档

文档评论(0)