olá tenho que fazer uma procedure utilizando if mais não consigo vocês poderiam me ajudar
Criar uam procedure chamada INSS que entre com o numero de um funcionario e:
a) Verificaque qual o sálario;
b) De acordo com este salário, verifique o percentual de inss e calcule o valor.
c) Este valor deverá ser atualizado no Folha_Pagamento.
create or replace procedure INSS
(fun in Folha_Pagamento.Cd_funcionario%TYPE)
is
(sala in Folha_Pagamento.Vl_salario%TYPE)
begin
if sala < 900 then
sala * 0.06
update Folha_Pagamento
set Vl_Inss = sala
where Cd_funcionario = fun;
end if;
procedure
-
- Rank: Programador Júnior
- Mensagens: 18
- Registrado em: Sáb, 09 Jun 2007 7:41 am
- Localização: Peruibe - SP
-
- Rank: Analista Sênior
- Mensagens: 147
- Registrado em: Qui, 16 Mar 2006 11:26 am
- Localização: São Paulo
O mundo gira muito!!
Fala bart_wagner,
Bom dia,
Então..eu tava olhando o seu script e tal...não seria + ou - isso que você está querendo fazer
Qualquer coisas, posta aqui no forum!!
Abs de seu amigo Hahu
-m
Que Deus te abençõe!
Bom dia,
Então..eu tava olhando o seu script e tal...não seria + ou - isso que você está querendo fazer
create or replace procedure prc_inss (p_funcionario in number(10)) is
v_salario number(10):=0;
begin
--- pega valor do salario
for x in(select salario vl from Folha_Pagamento
where Cd_funcionari = v_funcionario) loop
-- Verifica a faixa de salario
if x.vl < 900 then
-- calcula o percentual
v_salario := x.vl * 0.06;
-- atualiza o salario com o reajuste de acordo com o funcionario
update Folha_Pagamento
set Vl_Inss = v_salario
where Cd_funcionario = v_funcionario;
end if;
end loop;
--
commit;
-- caso não encontre o funcionario , cai no exceptio(tratamento de erro)!
exception
when data_not_found then
raise_application_error(-20000,'Funcionario não encontrado'||' - '||sqlerr);
end;
/
Abs de seu amigo Hahu

Que Deus te abençõe!
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 4 visitantes