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

So ersetzen Sie eine neue Zeile in Oracle

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), ‘ ‘ ) .