Supprimer les espaces multiples [RegEx] - Divers - Programmation
Marsh Posté le 21-02-2011 à 19:23:30
Ca a l'air pourtant clair dans la doc Oracle: http://download.oracle.com/docs/cd [...] ons130.htm
SELECT
REGEXP_REPLACE('texte1 texte2 texte3', '( ){2,}', ' ') "REGEXP_REPLACE"
FROM DUAL;
Bon, je sais pas a quoi correspond le "REGEXP_REPLACE" qui suit l'appel de la procédure (le nom de la nouvelle colonne ainsi générée, on dirait, au vu de http://www.dba-oracle.com/t_regula [...] _index.htm ), c'est probablement son absence qui déclenche l'erreur, mais je suppose que tu sauras adapter à ton besoin.
Noter que
SELECT
REGEXP_REPLACE('texte1 texte2 texte3', '[:space:]{2,}', ' ') "REGEXP_REPLACE"
FROM DUAL;
devrait coller aussi.
A+,
Marsh Posté le 22-02-2011 à 00:09:19
Ahh, je n'avais pas vu le dernier exemple de la doc Oracle.
Oki merci Gilou, je teste cela demain matin au taff.
Merci
Marsh Posté le 24-02-2011 à 21:12:09
Gilou, je te remercie c'est ca.
SELECT
REGEXP_REPLACE('texte1 texte2 texte3', '( ){2,}', ' ') "REGEXP_REPLACE"
FROM DUAL;
Je testerai pas curiosité avec la classe [:space:]
Marsh Posté le 21-02-2011 à 17:44:41
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 :
[: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 ..
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 :
Avez vous une idée de comment supprimer les espaces en doublons