Cita: por eso dije no se si la función que creé esta bien.
No se creó bien. Precisamente por eso te da error.
Oracle no funciona como otros DBMSs, donde si una rutina almacenada (SP o SF), no compila bien, no se crea. En Oracle se crea,
pero no es válida.
En otras palabras: Existe, pero no funciona.
Revisa la función creada y verifica qué errores contiene. cuando los hayas resuelto, vuelve a compilarla.