Salut tout le monde,
J'ai un ensemble d'instruction me permettant d'effectuer une comparaison sans tenir compte de la casse, des accents et quelques autres caractères
Je voudrais creer un index sur un champ en utilisant cet ensemble d'instruction afin que le traitement soit plus rapide cependant la fonction utl_raw.cast_to_varchar2 me retourne l'erreur suivante :
ORA-30553 : The function is not deterministic
Auriez-vous un equivalent ? ou une piste qui me permettrait de passer outre cette erreur ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 CREATE INDEX TOTO.MON_IDX ON TOTO.MA_TABLE ( TRANSLATE(NLS_UPPER(utl_raw.cast_to_varchar2(NLSSORT(ccfname,'NLS_SORT=BINARY_AI'))), '1' || TRANSLATE(NLS_UPPER(utl_raw.cast_to_varchar2(NLSSORT(ccfname,'NLS_SORT=BINARY_AI'))),' ABCDEFGHIJKLMNOPQRSTUVWXYZ',' '),'1') ASC, TRANSLATE(NLS_UPPER(utl_raw.cast_to_varchar2(NLSSORT(cclname,'NLS_SORT=BINARY_AI'))), '1' || TRANSLATE(NLS_UPPER(utl_raw.cast_to_varchar2(NLSSORT(cclname,'NLS_SORT=BINARY_AI'))),' ABCDEFGHIJKLMNOPQRSTUVWXYZ',' '),'1') ASC )
Partager