为了账号安全,请及时绑定邮箱和手机立即绑定

涨工资问题修改版

/*  为员工涨工资。

    从最低工资涨起每人涨10%,但是工资总额不能超过5万块。

    请计算涨工资的人数和涨工资后的工资总额,

    并输出涨工资的人数和工资总额

*/

set serveroutput on


declare

    cursor cemp is select empno, sal from emp;

    pempno emp.empno%type;

    psal emp.sal%type;

    

    --涨工资的人数

    countEmp number := 0;

    

    -- 涨工资后的工资总额

    salTotal number;

    

begin

    -- 涨工资之前的工资总额

    select sum(sal) into salTotal from emp;


    open cemp;

    loop

        fetch cemp into pempno, psal;


        -- 退出条件1:工资总额 > 5w,退出

        exit when salTotal + psal * 0.1 > 50000;

        

        -- 涨后工资总额

        salTotal := salTotal + psal * 0.1;


        -- 涨工资

        update emp set sal = sal * 1.1 where empno = pempno;

        

        -- 人数加一

        countEmp := countEmp + 1;

        

        -- 退出条件2:%notfound

        exit when cemp%notfound;        

        

    end loop;

    

    --因为有update操作,所以要commit

    commit;

    dbms_output.put_line('人数:' || countEmp || '工资总额:' || salTotal);

end;

/


正在回答

2 回答

6666

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

涨工资问题修改版

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信