关闭

为所有雇员增加工资,工资在 1000 以内的增加 30%,工资在 1000~2000之间的增加 20%, 2000 以上的增加 10%。

124人阅读 评论(0) 收藏 举报
分类:
--为所有雇员增加工资,工资在 1000 以内的增加 30%,工资在 1000~2000
--之间的增加 20%, 2000 以上的增加 10%。
--分析:if 迭代
--游标:c_emp :select ename,sal from emp; 变量:v_empno,v_name,v_sal
set serveroutput on 
declare 
v_empno emp.empno%type;
v_name emp.ename%type;
v_sal emp.sal%type;
cursor c_emp is select empno,ename,sal from emp;
begin
 dbms_output.put_line(rpad('姓名',10)||rpad('旧薪资',10)||rpad('新薪资',10));
  open c_emp;
    loop
      fetch c_emp into v_empno,v_name,v_sal;
      exit when c_emp%notfound;
      if v_sal < 1000 then
      update emp set sal = sal*1.3
      where empno=v_empno;
      commit;
      dbms_output.put_line(rpad(v_name,10)||rpad(v_sal,8)||rpad(v_sal*1.3,8));
      elsif v_sal >=1000 and v_sal <2000 then
      update emp set sal = sal*1.2
      where empno=v_empno;
      commit;
      dbms_output.put_line(rpad(v_name,10)||rpad(v_sal,8)||rpad(v_sal*1.2,8));
      else update emp set sal = sal * 1.1
      where empno=v_empno;
      commit;
      dbms_output.put_line(rpad(v_name,10)||rpad(v_sal,8)||rpad(v_sal*1.1,8));
      end if;
    end loop;
  close c_emp;
end;
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:9452次
    • 积分:342
    • 等级:
    • 排名:千里之外
    • 原创:22篇
    • 转载:25篇
    • 译文:0篇
    • 评论:1条
    最新评论