Pular para o conteúdo

Fóruns SQL e PL/SQL Inserir com procedure Inserir com procedure

#96094
burga
Participante

    eu alteraria o procedimento pra:

    Create or replace procedure ins_funcionario(
    v_nome in funcionario.nome%type,
    v_end in funcionario.ende%type,
    v_tel in funcionario.tel%type,
    v_cargo in funcionario.cargo%type,
    v_salario in funcionario.salario%type,
    v_chefe in funcionario.chefe%type := NULL,
    v_codigo_depto in funcionario.codigo_depto%type := NULL
    )
    Is
    cursor c_retorna_depto_chefe(p_chefe in funcionario.chefe%type) is
    select codigo_depto from funcionario where codigo = p_chefe;
    v_data funcionario.data_cont%type;
    v_codigo_depto_1 funcionario.codigo_depto%type;
    Begin
    v_data := sysdate;
    if (v_chefe is null) then
    v_codigo_depto_1 := v_codigo_depto;
    else
    open c_retorna_depto_chefe(v_chefe);
    fetch c_retorna_depto_chefe into v_codigo_depto_1;
    close c_retorna_depto_chefe;
    end if;
    Insert into funcionario(codigo, nome, ende, tel, data_cont, cargo, salario, chefe, codigo_depto)
    Values(seq_funcionario.nextval, v_nome, v_end, v_tel, v_data, v_cargo, v_salario, v_chefe, v_codigo_depto_1);
    Commit;
    End;

    Onde informa-se o codigo do depto apenas nos casos em que é inserção de cadastro de chefe (onde o funcionario nao possui chefe) e quando o funcionario possui chefe, ele pega o departamento do chefe e insere coloca no depto do funcionario…