Frage

Gibt es eine SQL * Plus-Befehl \r \n and\t aus der Ergebnismenge zu entfernen, die auf die Spool-Datei ausgehen wird? Das heißt, "trimmen" jeden Datensatz?

Wir haben set trim on in der Vergangenheit verwendet, aber es scheint nicht zu Bue, was wir jetzt brauchen. Ich versuche, Oracle übersetzen, chr Funktionen in der SQL-Abfrage zu vermeiden aufrufen.

Beispiel:

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 dies halten in meiner Spool-Datei

thisistheactualdata

aktualisieren

Nun, wir am Ende so etwas wie dies 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 einige schlechte Nachrichten: Wir müssen das 8 im Orakel laufen, und REGEXP_REPLACE scheint nicht vorhanden zu sein. : (

Vielen Dank im Voraus.

War es hilfreich?

Lösung

Ich glaube nicht, dass du in der Lage sein, dies zu tun mit einer SQL Plus-Richtlinie. SQL Plus ist ein ziemlich Thin-Client ist nicht dafür ausgelegt, die Daten zu berühren aus dem Ergebnis selbst festgelegt.

Wenn Sie nicht über die integrierten SQL-Funktionen verwenden möchten, um die Ausgabe zu ändern dann ich denke, dass Sie stecken mit Post-Verarbeitung einer Spool-Datei.

EDIT von DCookie: Da ich die OP ursprünglichen Antrag auf eine nicht-translate / CHR-basierte Lösung verpasst (konzentrierte ich mich auf die Klage des OP, dass sie mit 8i steckten), in Fairness dpbradley ich meine Antwort auf zurückziehen werde und schließen es als Teil dieses ein, da es eindeutig betrachtet wurde. Hier ist, was ich schrieb:

  

Sie könnten versuchen, die UEBER Funktion für Ihre Oracle 8 Situation:

SELECT TRANSLATE(L,'A'||CHR(10)||CHR(9)||CHR(13),'A') FROM test;

Andere Tipps

Ohne es zu versuchen, tut

SET TAB OFF

hat den gewünschten Effekt?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top