关于给员工涨工资的那个老师没有写完整的案例

来源:5-3 案例:员工涨工资问题

慕粉2310089285

2017-10-30 19:22

有没有老师写的那个给员工涨工资的完全代码

写回答 关注

2回答

  • 手转乾坤
    2017-12-14 10:44:23
    已采纳

    declare
       cursor cemp is select empno ,sal from emp order by sal;
       --定义参数
       pempno emp.empno%type;
       psal emp.sal%type;
       countEmp number :=0;
       salTotal number;

       begin
         --得到工资总额的初始值
         select  sum(sal) into salTotal from emp;
         --打开光标
         open cemp;
              loop
                  -- 1.工资总额>5w
                  exit when salTotal>50000;
                  --取一个员工涨工资
                  fetch  cemp into  pempno ,psal;
                  --2.%notfound
                  exit when cemp%notfound;

                  --涨工资
                  if salTotal+psal*1.1<50000 then
                  update  emp set sal = sal*1.1 where empno=pempno;
                  --涨工资的人数
                  countEmp := countEmp+1;
                  --涨后的工资总额
                  salTotal := salTotal+psal*0.1;
                  else exit;
                  end if;  
              end loop;
         --关闭光标
         close cemp;
         dbms_output.put_line('涨工资人数:'||countEmp||  '资总额:'||salTotal);
       end;

    panda赵 回复WestBr...

    me too

    2019-04-16 18:51:50

    共 3 条回复 >

  • 星光如此灿烂
    2019-07-16 14:47:16

    不需要用if 直接加个when就可以了

    loop
    exit when cemp%notfound;
    fetch cemp into pempno,psal;
    exit when salTotal > 50000;
    exit when salTotal+psal*0.1 > 50000;
    update emp set sal=sal*1.1 where empno=pempno;
    salTotal := salTotal +psal*0.1;
    countEmp := countEmp +1;
    end loop;


    星光如此灿烂 回复慕九州768...

    可以省略,那行确实冗余了。

    2019-07-30 14:32:23

    共 2 条回复 >

Oracle数据库开发必备利器之PL/SQL基础

Oracle数据库高级开发必备的基础,通过实例带你熟练掌握

75048 学习 · 208 问题

查看课程

相似问题