/*
为员工长工资。从最低工资调起每人长10%,但工资总额不能超过5万元,
请计算长工资的人数和长工资后的工资总额,并输出输出长工资人数及工资总额。
可能的SQL:
员工: select empno,sal from emp order by sal;
长工资后的工资总额:1. 对sal进行累加: 新的工资总额=旧的工资 + sal*0.1;
2. sum(sal): 查询数据库
练习: 工资不能超过5w
*/
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
--工资总额>5w
exit when salTotal > 50000;
--取一个员工
fetch cemp into pempno,psal;
exit when cemp%notfound;
--涨工资
update emp set sal=sal*1.1 where empno=pempno;
--人数
countEmp := countEmp +1;
--工资总额
salTotal := salTotal + psal * 0.1;
end loop;
close cemp;
commit;
--输出
dbms_output.put_line('长工资的人数:'|| countEmp);
dbms_output.put_line('工资总额:'|| salTotal);
end;
为员工长工资。从最低工资调起每人长10%,但工资总额不能超过5万元,
请计算长工资的人数和长工资后的工资总额,并输出输出长工资人数及工资总额。
可能的SQL:
员工: select empno,sal from emp order by sal;
长工资后的工资总额:1. 对sal进行累加: 新的工资总额=旧的工资 + sal*0.1;
2. sum(sal): 查询数据库
练习: 工资不能超过5w
*/
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
--工资总额>5w
exit when salTotal > 50000;
--取一个员工
fetch cemp into pempno,psal;
exit when cemp%notfound;
--涨工资
update emp set sal=sal*1.1 where empno=pempno;
--人数
countEmp := countEmp +1;
--工资总额
salTotal := salTotal + psal * 0.1;
end loop;
close cemp;
commit;
--输出
dbms_output.put_line('长工资的人数:'|| countEmp);
dbms_output.put_line('工资总额:'|| salTotal);
end;