Es reicht nicht aus, sqlplus zu zwingen, keine Zeilen umzubrechen. Es ist auch erforderlich, dem Viewer mitzuteilen, dass Sie zum Anzeigen der Spooldatei keine Zeilen umbrechen möchten. Wenn Ihre Zuschauer ist less
dann -S
die Option müssen Sie nach verwenden
https://superuser.com/questions/272818/how-to-turn-off-word-wrap-in-less . Unter Unix / Linux können Sie head -1 output.txt
die erste Zeile einer Datei abrufen und so überprüfen, ob dies wie erwartet ist, oder Sie können feststellen od -c output.txt|head
, wo die Zeilenumbrüche tatsächlich in Ihrer Ausgabedatei platziert sind.
Wenn Sie LONG-Spalten anzeigen und deren Werte Zeilenumbrüche enthalten, werden für diese Spaltenwerte mehrere Zeilen gedruckt, und Sie können dies nicht mit sqlplus-Einstellungen überschreiben.
Die folgenden sqlplus-Befehle können nützlich sein:
SET LINESIZE linesize
die Länge der Linie. In den meisten Fällen ist der Maximalwert für linesize
32767. Sie können Ihren Maximalwert ermitteln, wenn Sie LINESIZE auf einen ungültigen Wert setzen und die Fehlermeldung überprüfen, SET LINESIZE 0
um SP2-0267: linesize option 0 out of range (1 through 32767)
(1) zu erhalten.
SET TRIMSPOOL ON
Andernfalls wird jede Zeile in der Spooldatei mit Leerzeichen gefüllt, bis die Zeilengröße erreicht ist.
SET TRIMOUT ON
Andernfalls wird jede Zeile in der Ausgabe mit Leerzeichen gefüllt, bis die Zeilengröße erreicht ist.
SET WRAP OFF
Schneidet die Zeile ab, wenn sie länger als LINESIZE ist. Dies sollte nicht passieren, wenn die Zeilengröße groß genug ist.
SET TERMOUT OFF
unterdrückt das Drucken der Ergebnisse zur Ausgabe. Die Zeilen werden weiterhin in die Spooldatei geschrieben. Dies kann die Ausführungszeit einer Anweisung erheblich beschleunigen.
SET PAGESIZE 0
um eine unendliche Seitengröße festzulegen und Überschriften, Titel usw. zu vermeiden.
- Es gibt einige andere
SET
Parameter bezüglich der Ausgabe (NUMWIDTH, NUMFORMAT, LONG, COLSEP) und der Leistung (ARRAYSIZE, LONGCHUNKSIZE).
Sie müssen den COLUMN
Befehl verwenden, um einzelne Spalten zu formatieren.
ZB column name format a30
wird die Spalte name
in der Ausgabe auf eine maximale Länge von 30 Zeichen formatiert .
Wenn Sie möchten, dass die Anzeigegröße nicht fest ist, sondern der Größe des tatsächlichen Werts einer Spalte in einer Zeile entspricht, besteht die einzige mir bekannte Möglichkeit darin, die select-Klausel Ihrer Anweisung zu ändern, um das gewünschte Ergebnis zu erhalten und zu verwenden der String-Verkettungsoperator ||
, z
select emp_id||' '||first_name||' '||last_name
from emp;
Eine vollständige Beschreibung aller Variablen finden Sie im SQL * Plus-Benutzerhandbuch und in der Referenz .
Wenn Sie einige Einstellungen (oder COLUMN-Definitionen) wiederverwenden möchten, können Sie sie in einer Datei speichern und diese Datei ausführen, wenn Sie sie erneut benötigen. Sie können diese Datei sogar automatisch ausführen, wenn Sie sqlplus starten.
(1) So ermitteln Sie den Maximalwert für LINESIZE (systemabhängig) (Doc ID 1547262.1)