Problem:
Sie möchten einen Zeilenumbruch in einer Spalte entfernen.
Beispiel:
Unsere Datenbank hat eine Tabelle namens address_book
mit Daten in den Spalten city_name
und company_address
. Sie möchten alle Tabulatoren und Zeilenumbrüche in company_address
ersetzen Spalte mit „ “ (einem Leerzeichen), um es optisch ansprechender zu gestalten.
Stadtname | Firmenadresse |
---|---|
Tokio | 15th Oreo Street, Tokio 9870-11 |
Warschau | Marszalkowska-Allee 18, Warschau 03-654 |
Accra | 123 Banana Junction, Circle-Accra, 00244 |
Berlin | 25. Mango Avenue, Asyl unten, DE-1234 |
Lösung:
Hier ist die Abfrage:
SELECT city_name, REPLACE(company_address, CHR(10) || CHR(13) || CHR(9), ‘ ‘) FROM address_book;
Hier ist das Ergebnis der Abfrage:
Stadtname | Firmenadresse |
---|---|
Tokio | 15th Oreo Street, Tokio 9870-11 |
Warschau | Marszalkowska-Allee 18, Warschau 03-654 |
Accra | 123 Banana Junction, Circle-Accra, 00244 |
Berlin | 25th Mango Avenue, Asylum Down, DE-1234 |
Diskussion:
Das REPLACE()
Die Funktion wird im Allgemeinen verwendet, um alle Vorkommen einer angegebenen Zeichenfolge in einer Zeichenfolge durch eine andere Zeichenfolge zu ersetzen. Sie fragen sich vielleicht, warum wir CHR(10)
verwendet haben und CHR(13)
im obigen Beispiel. Die CHR()
Funktion wird verwendet, um Steuerzeichen in eine Zeichenfolge einzufügen. CHR(10)
wird verwendet, um Zeilenumbrüche einzufügen, CHR(9)
ist für Tabulatoren und CHR(13)
ist für Wagenrückläufe.
Im obigen Beispiel wollten wir alle Vorkommen des Zeilenumbruchs, des Tabulators und des Wagenrücklaufs entfernen, also haben wir CHR(10)
verwendet , CHR(9)
, und CHR(13)
. Sie können mit dem Verkettungszeichen in Oracle kombiniert werden (||
) zum Entfernen aller ihrer Vorkommen in einer Spalte. Eine Beispielsyntax ist REPLACE(string, CHR(10) || (CHR(13) || CHR(09), ‘ ‘ )
.