Nie wystarczy zmusić sqlplus do nie zawijania linii. Konieczne jest również poinformowanie przeglądarki, że używasz do przeglądania pliku buforowania, aby nie zawijał wierszy. Jeśli Twoja przeglądarka jest less
wtedy -S
opcja trzeba użyć według
https://superuser.com/questions/272818/how-to-turn-off-word-wrap-in-less . W systemach Unix / Linux możesz użyć, head -1 output.txt
aby uzyskać pierwszą linię pliku, a więc sprawdź, czy jest to zgodne z oczekiwaniami, lub możesz od -c output.txt|head
sprawdzić, gdzie podział wiersza jest rzeczywiście umieszczony w pliku wyjściowym.
Jeśli wyświetlasz DŁUGIE kolumny, a ich wartości zawierają podziały wierszy, to dla tych wartości kolumn zostanie wydrukowanych wiele wierszy i nie możesz zastąpić tego ustawieniami sqlplus.
Przydatne mogą być następujące polecenia sqlplus:
SET LINESIZE linesize
długość linii. W większości przypadków maksymalna wartość linesize
to 32767. Możesz sprawdzić swoją maksymalną wartość, jeśli ustawisz LINESIZE na niepoprawną wartość i sprawdzisz komunikat o błędzie, więc SET LINESIZE 0
może dać SP2-0267: linesize option 0 out of range (1 through 32767)
(1)
SET TRIMSPOOL ON
w przeciwnym razie każda linia w zbiorze buforowym zostanie wypełniona spacjami, aż do osiągnięcia rozmiaru linii.
SET TRIMOUT ON
w przeciwnym razie każda linia na wyjściu zostanie wypełniona spacjami, dopóki nie zostanie osiągnięty rozmiar linii.
SET WRAP OFF
Obcina linię, jeśli jest dłuższa niż LINESIZE. Nie powinno tak się zdarzyć, jeśli rozmiar linii jest wystarczająco duży.
SET TERMOUT OFF
pomija drukowanie wyników na wydruku. Linie są nadal zapisywane w pliku buforowania. Może to znacznie przyspieszyć czas egzekucji oświadczenia.
SET PAGESIZE 0
ustawić nieskończony rozmiar strony i unikać nagłówków, tytułów itp.
- Istnieją inne
SET
parametry dotyczące wyniku (NUMWIDTH, NUMFORMAT, LONG, COLSEP) i wydajności (ARRAYSIZE, LONGCHUNKSIZE).
Musisz użyć COLUMN
polecenia, aby sformatować poszczególne kolumny.
Np. column name format a30
Sformatuje kolumnę name
na wyjściu do maksymalnej długości 30 znaków.
Jeśli chcesz, aby rozmiar wyświetlacza nie był ustalony, ale powinien być równy rozmiarowi rzeczywistej wartości kolumn w rzędzie, to jedyny sposób, jaki wiem, to to, że zmieniasz klauzulę select swojej instrukcji, aby uzyskać pożądany wynik i użyć operator konkatenacji łańcucha ||
, np
select emp_id||' '||first_name||' '||last_name
from emp;
Pełny opis wszystkich zmiennych można znaleźć w Podręczniku użytkownika i podręczniku SQL * Plus .
Jeśli chcesz ponownie użyć niektórych ustawień (lub definicji KOLUMNA), możesz zapisać je w pliku i uruchomić ten plik, gdy będziesz ich potrzebować ponownie. Możesz nawet uruchomić ten plik automatycznie, jeśli uruchomisz sqlplus.
(1) „Jak znaleźć maksymalną wartość LINESIZE (jest zależna od systemu) (Doc ID 1547262.1)”