oracle自带的emp表,写一个过程输入部门deptno=10时,10部门的所有员工工资加100;输入部门deptno=10时,20部门的所有员工工资加200,谢了!

解决方案 »

  1.   


    写错了吧,应该是输入deptno = 20时,20的工资加200吧
    create or replace procedure TEST1(DNO in NUMBER) is  v_emp_record scott.emp%rowtype;
      cursor c1 is
        select * from scott.emp t where t.deptno = DNO;
    begin
      open c1;
      loop
        fetch c1
          into v_emp_record;
        exit when c1%notfound;
        if v_emp_record.deptno = 10 then
          v_emp_record.sal := v_emp_record.sal + 100;
          dbms_output.put_line('NAME '||v_emp_record.Ename||'    DEPTNO  '||
          v_emp_record.Deptno||'   10部门员工的工资加100后为:' || v_emp_record.sal);
        elsif v_emp_record.deptno = 20 then
          v_emp_record.sal := v_emp_record.sal + 200;
          dbms_output.put_line('NAME  '||v_emp_record.Ename||'   DEPTNO  '||
          v_emp_record.Deptno||'   20部门员工的工资加200后为:' || v_emp_record.sal);
        elsif v_emp_record.deptno not in (10, 20) then
          dbms_output.put_line('NAME '||v_emp_record.Ename||'  DEPTNO  '||
          v_emp_record.Deptno||'   其他部门的员工工资不变:' || v_emp_record.sal);
        end if;
      end loop;
      close c1;
    end;