为所有雇员增加工资,工资在 1000 以内的增加 30%,工资在 1000~2000之间的增加 20%, 2000 以上的增加 10%。
--为所有雇员增加工资,工资在 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;
阅读更多
个人分类: Oracle数据库
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

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

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭