sqlplus entfernen \r \n \t aus Spule

Gibt es eine sql*plus-Befehl zu entfernen \r \n und\t aus dem ResultSet, das geht aus der spool-Datei? Das heißt, "trim" jeder Datensatz?

Haben wir set trim on in der Vergangenheit, aber es scheint nicht zu bue, was wir jetzt brauchen. Ich versuche zu vermeiden, den Aufruf der oracle übersetzen, chr-Funktionen in der sql-Abfrage.

Beispielsweise

set termout off
set spool somefile.dat
set lin  600

select data from mytable;

set spool off;
exit;

Meine Abfrage gibt diese

|DATA|
|\n \t\t\t\t\t thisistheactualdata \t\t\t\t\t\t\n|

Und ich möchte, um dieses zu behalten in meinem Spool-Datei

thisistheactualdata

update

Gut, wir landeten etwas wie das zu tun.

set tab off;
spool /home/oracle/out.dat

set linesize 20
set termout off
set trim on
select regexp_replace(l,'(\t|\n)','') from test;

spool off;
exit;

Aber habe ein paar schlechte Nachrichten: Wir müssen zum ausführen dieses in oracle 8, und regexp_replace scheint nicht verfügbar zu sein. 🙁

Vielen Dank im Voraus.

Meinst du das entfernen dieser Zeichen, wenn Sie sind Teil der Daten (im Gegensatz zu streaming-SQL*Plus-Ausgang, ohne die Zeichen, die Sie versorgt)?
Ja, entfernen Sie Sie aus der Ausgabespalten.
Wenn Sie haben die OWA_PATTERN-Paket installiert haben, könnten Sie schreiben Ihre eigenen wrapper-Funktion zu imitieren, regexp_replace()? Vielleicht eine generische strip/trim-Funktion zur Vereinfachung der Abfragen - also, wenn Sie finden ein anderes Zeichen, das Sie entfernen möchten, können Sie ändern Sie die Funktion eher als alle Abfragen.
ÜBERSETZEN würde helfen, Ihre Oracle-8-problem?
getan, danke an alle

InformationsquelleAutor Tom | 2010-06-09

Schreibe einen Kommentar