--为雇员增加工资,从工资低的雇员开始,为每个人增加原工资的 10%,限
--定所增加的工资总额为 800 元,显示增加工资的人数和余额。
--1.游标c_sal :select empno,ename,sal from emp order by sal;v_empno,v_sal 个人薪资,v_total:=800 涨薪总数,
--v_add_sal 每个人的涨薪,v_count 人数
set serveroutput on
declare
v_empno varchar2(10);
v_sal number;
v_total number:=800;
v_add_sal number;
v_count number:=0;
cursor c_sal is select empno,sal from emp order by sal;
begin
open c_sal;
dbms_output.put_line('员工编号 '||'旧薪资 '||'新薪资 ');
loop
fetch c_sal into v_empno,v_sal;
exit when c_sal%notfound;
v_add_sal := v_sal*0.1;
if v_total > v_add_sal then
v_total:=v_total-v_add_sal;
dbms_output.put_line(v_empno||'-'||v_sal||'-'||to_char(v_sal+v_add_sal,9999999));
update emp set sal=sal+v_add_sal
where empno=v_empno;
v_count:=v_count+1;
commit;
else dbms_output.put_line(v_empno||'-'||v_sal||'-'||v_sal);
end if;
end loop;
close c_sal;
dbms_output.put_line('涨薪人数 :'||v_count);
dbms_output.put_line('剩余资金 :'||v_total);
end;
--定所增加的工资总额为 800 元,显示增加工资的人数和余额。
--1.游标c_sal :select empno,ename,sal from emp order by sal;v_empno,v_sal 个人薪资,v_total:=800 涨薪总数,
--v_add_sal 每个人的涨薪,v_count 人数
set serveroutput on
declare
v_empno varchar2(10);
v_sal number;
v_total number:=800;
v_add_sal number;
v_count number:=0;
cursor c_sal is select empno,sal from emp order by sal;
begin
open c_sal;
dbms_output.put_line('员工编号 '||'旧薪资 '||'新薪资 ');
loop
fetch c_sal into v_empno,v_sal;
exit when c_sal%notfound;
v_add_sal := v_sal*0.1;
if v_total > v_add_sal then
v_total:=v_total-v_add_sal;
dbms_output.put_line(v_empno||'-'||v_sal||'-'||to_char(v_sal+v_add_sal,9999999));
update emp set sal=sal+v_add_sal
where empno=v_empno;
v_count:=v_count+1;
commit;
else dbms_output.put_line(v_empno||'-'||v_sal||'-'||v_sal);
end if;
end loop;
close c_sal;
dbms_output.put_line('涨薪人数 :'||v_count);
dbms_output.put_line('剩余资金 :'||v_total);
end;