create or replace procedure p_cursor_for_rowtype 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_dados_func dados_func%rowtype;
aux_salario bd_emp.emp_val_sal%type;
begin
for aux_dados_func in dados_func loop
if aux_dados_func.faixa_desc = 1 then
aux_salario := aux_dados_func.emp_val_sal + aux_dados_func.emp_val_sal * 0.10;
elsif aux_dados_func.faixa_desc = 2 then
aux_salario := aux_dados_func.emp_val_sal + aux_dados_func.emp_val_sal * 0.20;
elsif aux_dados_func.faixa_desc = 3 then
aux_salario := aux_dados_func.emp_val_sal + aux_dados_func.emp_val_sal * 0.30;
elsif aux_dados_func.faixa_desc = 4 then
aux_salario := aux_dados_func.emp_val_sal + aux_dados_func.emp_val_sal * 0.40;
elsif aux_dados_func.faixa_desc = 5 then
aux_salario := aux_dados_func.emp_val_sal + aux_dados_func.emp_val_sal * 0.50;
end if;
update bd_emp e set e.emp_val_sal = aux_salario
where e.emp_num = aux_dados_func.emp_num;
commit;
end loop;
end p_cursor_for_rowtype;