Hello tout le monde,
J'ai un champs qui est mal formaté. Je souhaiterai supprimer tous les espaces en doublons par un seul espace (ou meme un retour chariot soit chr(13) ).
Exemple de chaine : "tototo totototot tata"
Sous Oracle, on utilise la commande REGEXP_REPLACE.
Expression simple fonctionnel :
Code :
- select REGEXP_REPLACE('texte1 texte2 texte3', 'te', 'huh') from dual;
|
[:blank:] est la classe utilisé représentant l'espace : http://www.dba-oracle.com/t_regular_expressions.htm
Je cherche à supprimer un espace ou plusieurs de suite par un seul espace (ou retour chariot).
J'utilise donc l'expression pour signifier 2 ou plus ..
Code :
- select REGEXP_REPLACE('texte1 texte2 texte3', [:blank:]{2,n}, 'huh') from dual;
|
mais j'obtiens le message d'erreur : ORA-00936: expression absente
Je suis allé regardé l'explication de cette erreur mais cela ne m'aide pas plus : http://ora-00936.ora-code.com/
J'ai essayé aussi de doubler les [ ] mais ce n'est pas mieux :
Code :
- select REGEXP_REPLACE('texte1 texte2 texte3', [[:blank:]]{2,n}, 'huh') from dual;
|
Avez vous une idée de comment supprimer les espaces en doublons