您的位置:首页 > 其它

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

2016-06-01 14:43 399 查看
--为所有雇员增加工资,工资在 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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: