Oracle
 sql >> Base de données >  >> RDS >> Oracle

Oracle Regexp pour remplacer \n,\r et \t par un espace

Pas besoin de regex. Cela peut être fait facilement avec les codes ASCII et l'ennuyeux vieux TRANSLATE()

select translate(your_column, chr(10)||chr(11)||chr(13), '    ')
from your_table;

Cela remplace la nouvelle ligne, la tabulation et le retour chariot par un espace.

TRANSLATE() est beaucoup plus efficace que son équivalent regex. Cependant, si votre cœur est attaché à cette approche, sachez que nous pouvons référencer les codes ASCII dans les regex. Donc, cette déclaration est la version regex de ce qui précède.

select regexp_replace(your_column,  '([\x0A|\x0B|`\x0D])', ' ')
from your_table;

L'astuce consiste à référencer le code ASCII en hexadécimal plutôt qu'en base 10.