Erreur PLS-00103 compilation de fonction définie par l'utilisateur dans Oracle

Je suis en train de créer une fonction définie par l'utilisateur dans Oracle, qui sera de retour une DATE donnée un argument texte contenant une date sous-chaîne. J'ai essayé un couple de façons de l'écriture, et tous semblent jeter le même message d'erreur:

CREATE OR REPLACE FUNCTION lm_date_convert (lm_date_in IN VARCHAR2(50))
  RETURN DATE DETERMINISTIC IS
BEGIN
  RETURN(TO_DATE(REGEXP_REPLACE(lm_date_in, '([[:digit:]]{2})[-/.]*([[:digit:]]{2})[-/.]*([[:digit:]]{4})','--'), 'YYYY-MM-DD'));
END;

l'erreur:

FONCTION lm_date_convert Compilé. 1/46
PLS-00103: Rencontré
le symbole "(" lorsque attend que l'un des
suivantes:

:= . ) , @ % de caractères par défaut de La
le symbole ":=" a remplacé "(" à
continuer.

Des idées sur ce point, et en général des UDF des conseils d'écriture (et de bonnes références) sont les bienvenus! Merci.

OriginalL'auteur Stew | 2010-08-03