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

小白有一个不解,关于update emp set sal = sal*1.1 where empno = pempno

set serveroutput on;

declare

countEmp number := 0;--涨工资的人数

salTotal number;--工资总额

pempno emp.empno%type;--员工号

psal   emp.sal%type;--薪水

cursor cemp is select empno,sal from emp order by sal;--将集合升序


begin

  --将初始的工资总额相加,into到salTotal中

  select sum(sal) into salTotal from emp;

  open cemp;

       loop

         exit when salTotal > 50000;

              --如果工资总额没有超过5w,就开始取光标

              fetch cemp into pempno,psal;

              exit when cemp%notfound;

                   

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

                   --人数+1

                   countEmp := countEmp+1;

                   --涨后=涨前+工资*0.1

                   salTotal := salTotal + psal*0.1;--psal从上面继承110%sal

       end loop;

  close cemp;

  

  commit;

  

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

end;

/

小白刚来,求教

如果加粗的语句不用,好像也能求出人数和总额吧?

正在回答

1 回答

是的,但是加了可以在后面继续执行,你不更新就一直是同样的数据做一百遍。

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

举报

0/150
提交
取消

小白有一个不解,关于update emp set sal = sal*1.1 where empno = pempno

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