› Fóruns › SQL e PL/SQL › Function Inválida › Function Inválida
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;
/