exercicio PL cursor 1

0 views
Skip to first unread message

Profa. Simone Cristina Aléssio

unread,
Nov 27, 2013, 1:13:11 PM11/27/13
to geracaot...@googlegroups.com

create or replace procedure P_cursor_1 is

cursor dados_func is
    select e.emp_val_sal,
           e.emp_nome,
           s.faixa_desc,
           e.emp_num
    from   bd_emp e,
           faixa_sal s
    where  e.emp_val_sal between s.faixa_val_min and s.faixa_val_max
    order by e.emp_nome;
    
aux_val_sal        bd_emp.emp_val_sal%type;
aux_nome           bd_emp.emp_nome%type;
aux_faixa          faixa_sal.faixa_desc%type;
aux_cod_func       bd_emp.emp_num%type;
aux_salario        bd_emp.emp_val_sal%type;

   
begin
    
   open  dados_func;
   loop 
       fetch dados_func 
       into  aux_val_sal,
             aux_nome,
             aux_faixa,
             aux_cod_func;
       exit when dados_func%notfound;
       
       if aux_faixa = 1 then
          aux_salario  := aux_val_sal + aux_val_sal * 0.10;
       elsif aux_faixa = 2 then
          aux_salario  := aux_val_sal + aux_val_sal * 0.20;
       elsif aux_faixa = 3 then
          aux_salario  := aux_val_sal + aux_val_sal * 0.30;
       elsif aux_faixa = 4 then
          aux_salario  := aux_val_sal + aux_val_sal * 0.40;
       elsif aux_faixa = 5 then
          aux_salario  := aux_val_sal + aux_val_sal * 0.50;
       end if;
       
       update bd_emp e  set e.emp_val_sal =   aux_salario
       where  e.emp_num =  aux_cod_func;
       
       commit;   
       
  end loop;
  
  close dados_func;

end P_cursor_1;

______________________________________
Profa: Simone Cristina Aléssio
Administração - Sistemas de Informação
Reply all
Reply to author
Forward
0 new messages