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;