Non è sufficiente forzare sqlplus a non avvolgere le linee. È inoltre necessario indicare al visualizzatore che si utilizza per visualizzare il file di spooling per non avvolgere le righe. Se il tuo visualizzatore è less
quindi -S
l'opzione che devi utilizzare secondo
https://superuser.com/questions/272818/how-to-turn-off-word-wrap-in-less . Su Unix / Linux puoi usare head -1 output.txt
per ottenere la prima riga di un file e quindi controlla se questo è come previsto o puoi usare od -c output.txt|head
per vedere dove le interruzioni di riga sono effettivamente posizionate nel tuo file di output.
Se si visualizzano colonne LUNGHE e i loro valori contengono interruzioni di riga, verranno stampate più righe per questi valori di colonna e non è possibile sostituirla con le impostazioni sqlplus.
I seguenti comandi sqlplus potrebbero essere utili:
SET LINESIZE linesize
la lunghezza della linea. Nella maggior parte dei casi il valore massimo per linesize
è 32767. È possibile scoprire il valore massimo se si imposta LINESIZE su un valore non valido e si controlla il messaggio di errore che SET LINESIZE 0
può dare SP2-0267: linesize option 0 out of range (1 through 32767)
(1)
SET TRIMSPOOL ON
in caso contrario, ogni riga nel file di spool viene riempita di spazi vuoti fino al raggiungimento della dimensione di riga.
SET TRIMOUT ON
in caso contrario, ogni riga nell'output viene riempita con spazi vuoti fino al raggiungimento della dimensione della riga.
SET WRAP OFF
Tronca la linea se è più lunga di LINESIZE. Questo non dovrebbe accadere se la dimensione della linea è abbastanza grande.
SET TERMOUT OFF
sopprime la stampa dei risultati sull'output. Le righe vengono comunque scritte nel file di spool. Ciò può accelerare molto il tempo di esecuzione di un'istruzione.
SET PAGESIZE 0
per impostare un formato pagina infinito ed evitare titoli, titoli e così via.
- Esistono altri
SET
parametri relativi all'output (NUMWIDTH, NUMFORMAT, LONG, COLSEP) e alle prestazioni (ARRAYSIZE, LONGCHUNKSIZE).
Devi usare il COLUMN
comando per formattare singole colonne.
Ad esempio column name format a30
formatterà la colonna name
nell'output su una lunghezza massima di 30 caratteri.
Se vuoi che la dimensione di visualizzazione non sia corretta ma dovrebbe essere uguale alla dimensione del valore effettivo di una colonna in una riga, l'unico modo che conosco è che cambi la clausola select della tua dichiarazione per ottenere il risultato desiderato e usare l'operatore di concatenazione di stringhe ||
, ad es
select emp_id||' '||first_name||' '||last_name
from emp;
Una descrizione completa di tutte le variabili è disponibile nella Guida per l'utente e nei riferimenti di SQL * Plus .
Se si desidera riutilizzare alcune impostazioni (o definizioni COLONNA), è possibile memorizzarle in un file ed eseguirlo quando necessario. È anche possibile eseguire questo file automaticamente se si avvia sqlplus.
(1) "Come trovare il valore massimo di LINESIZE (dipende dal sistema) (ID documento 1547262.1)"