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 lessdann -Sdie 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.txtdie 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 linesizedie Länge der Linie. In den meisten Fällen ist der Maximalwert für linesize32767. Sie können Ihren Maximalwert ermitteln, wenn Sie LINESIZE auf einen ungültigen Wert setzen und die Fehlermeldung überprüfen, SET LINESIZE 0um 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 OFFSchneidet die Zeile ab, wenn sie länger als LINESIZE ist. Dies sollte nicht passieren, wenn die Zeilengröße groß genug ist.
SET TERMOUT OFFunterdrü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
SETParameter bezüglich der Ausgabe (NUMWIDTH, NUMFORMAT, LONG, COLSEP) und der Leistung (ARRAYSIZE, LONGCHUNKSIZE).
Sie müssen den COLUMNBefehl verwenden, um einzelne Spalten zu formatieren.
ZB column name format a30wird die Spalte namein 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)