Zeilenwechsel entfernen

Hallo,

ich möchte (muß) Zeilenwechsel, welche in einem Feld
aenderung_text character varying(500) NOT NULL DEFAULT ‘’::character varying,
enthalten sind durch ein anderes Zeichen ersetzen, damit ich die Daten exportiert bekomme.

Wenn ich es mit REPLACE() mache und als Suchtext einen konkreten Buchstaben angebe:

SELECT REPLACE(aenderung_text,'A','ZW') AS SAUBER FROM tbsp;

klappt es auch, aus A wird ZW

Aber bei

SELECT REPLACE(aenderung_text,CHAR(13),'ZW') AS SAUBER FROM tbsp;

versagt das Ganze mit dem Hinweis:
FEHLER: Syntaxfehler bei „,“
LINE 1: SELECT REPLACE(aenderung_text,CHAR(13),‘ZW’) AS SAUBER FROM …
^
********** Fehler **********

FEHLER: Syntaxfehler bei „,“
SQL Status:42601
Zeichen:39

PostrgreSQL scheint sich an CHAR(13) zu stören, denn wenn ich Char(13)||CHAR(10) verwende steht Syntaxfehler bei “||”.

Hat jemand eine Idee? Danke

Gruß Rainer

test=*# select E'das ist ein\ntext';
  ?column?
-------------
 das ist ein+
 text
(1 row)

Time: 0,115 ms
test=*# select replace(E'das ist ein\ntext',E'\n',' ');
     replace
------------------
 das ist ein text
(1 row)

Hallo,

leider klappt das bei mir nur, wenn sich das SELECT mit REPLACE auf einen Text beziehen, sobald ich die Spalte der Tabelle nehme klappt das nicht mehr :frowning:

Habe nun weiter experimentiert und nun eine Lösung gefunden:
SELECT REPLACE(aenderung_text,E’\r\n’,’ - ') AS SAUBER FROM tbsp;

Lösung war das zusätzliche “\r”.

Danke an akretschmer für den richtungsweisenden Tipp.

Gruß und Dank
Rainer

Ob der Text da als Konstante ist oder aus einer Spalte kommt ist irrelevant. Ich kann aber nicht wissen, ob das NIX oder Windows-Zeilenumbrüche sind/waren …