Pular para o conteúdo

Fóruns SQL e PL/SQL Function Inválida Function Inválida

#90839
souza
Participante

    Segue a function

    CREATE OR REPLACE FUNCTION SCHEMA.FNC_CALC_VL_TOTAL_ITEM (pc_in_5_casas_vl_total CHAR,
    pc_in_trunc_vl_total CHAR, pn_qt_lcto NUMBER, pn_vl_lcto NUMBER, pn_vl_lcto_original NUMBER) RETURN NUMBER IS
    ln_vl_total NUMBER := 0;
    ln_vl_lcto_original NUMBER := 0;

    BEGIN
    ln_vl_lcto_original := pn_vl_lcto_original;
    if (ln_vl_lcto_original is null or ln_vl_lcto_original = 0) then
    ln_vl_lcto_original := pn_vl_lcto;
    end if;
    if (pc_in_5_casas_vl_total = ‘S’) then
    ln_vl_total := pn_qt_lcto * ln_vl_lcto_original;
    elsif (pc_in_5_casas_vl_total = ‘N’) then
    ln_vl_total := pn_qt_lcto * pn_vl_lcto;
    end if;
    if (pc_in_trunc_vl_total = ‘S’) then
    ln_vl_total := trunc(ln_vl_total, 2);
    elsif (pc_in_trunc_vl_total = ‘N’) then
    ln_vl_total := round(ln_vl_total, 2);
    end if;
    RETURN ln_vl_total;
    EXCEPTION
    WHEN OTHERS THEN
    RAISE_APPLICATION_ERROR(-20001,
    ‘Erro ao calcular o valor total do lançamento do item.’ ||
    chr(10) || ‘Rotina BD: FNC_CALC_VL_TOTAL_ITEM()’ || chr(10)
    || SQLCODE || ‘-‘ || SQLERRM);
    END;
    /