Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle Regexp zum Ersetzen von \n,\r und \t durch Leerzeichen

Keine Notwendigkeit für Regex. Das geht ganz einfach mit den ASCII-Codes und dem langweiligen alten TRANSLATE()

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

Dadurch werden Zeilenumbruch, Tabulator und Wagenrücklauf durch Leerzeichen ersetzt.

TRANSLATE() ist viel effizienter als sein Regex-Äquivalent. Wenn Sie sich jedoch für diesen Ansatz interessieren, sollten Sie wissen, dass wir ASCII-Codes in Regex referenzieren können. Diese Anweisung ist also die Regex-Version der obigen.

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

Die Optimierung besteht darin, den ASCII-Code im Hexadezimalformat und nicht zur Basis 10 zu referenzieren.