procedure

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
bart_wagner
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 18
Registrado em: Sáb, 09 Jun 2007 7:41 am
Localização: Peruibe - SP

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;
Hahu
Rank: Analista Sênior
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

Selecionar tudo


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;
/

Qualquer coisas, posta aqui no forum!!

Abs de seu amigo Hahu ;) -m

Que Deus te abençõe!
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 4 visitantes