日期:2014-05-17  浏览次数:20874 次

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

------解决方案--------------------
自己看书吧这么懒怎么行
------解决方案--------------------
引用
oracle自带的emp表,写一个过程输入部门deptno=10时,10部门的所有员工工资加100;输入部门deptno=10时,20部门的所有员工工资加200,谢了!


写错了吧,应该是输入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;