Pongo la corrección de un detalle, en el procedimiento IUDF_NUMLITERAL.
El problema se causa cuando hay una entrada decimal, p. ejemplo de prec 2, y esta termina en cero. Ejemplo: 14.20. La salida es: CATORCE CON DOS, en vez de CATORCE CON VEINTE.
Solución: Realizar el cambio siguiente
Código SQL
[-]
poner esta --> if (prec > 6) then prec = 2; -- Ponemos dos por defecto en caso de entrar una precisión mayor que seis
-- Eliminar esta línea if (prec > char_length(num_cad)) then prec = char_length(num_cad);
-- Fin del chequeo de la precisión