慕容1086703
2019-08-19 17:18
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;
/
小白刚来,求教
如果加粗的语句不用,好像也能求出人数和总额吧?
是的,但是加了可以在后面继续执行,你不更新就一直是同样的数据做一百遍。
Oracle数据库开发必备利器之PL/SQL基础
75048 学习 · 208 问题
相似问题
回答 3