Não basta forçar o sqlplus a não quebrar linhas. Também é necessário informar ao visualizador que você usa para exibir o arquivo de spool para não quebrar as linhas. Se o seu espectador é less, em seguida, -Sa opção que você tem que usar de acordo com
https://superuser.com/questions/272818/how-to-turn-off-word-wrap-in-less . No Unix / Linux, você pode usar head -1 output.txtpara obter a primeira linha de um arquivo e, assim, verificar se isso é o esperado ou pode od -c output.txt|head
ver para onde as quebras de linha são realmente colocadas no seu arquivo de saída.
Se você exibir colunas LONG e seus valores contiverem quebras de linha, várias linhas serão impressas para esses valores de coluna e você não poderá substituí-lo nas configurações do sqlplus.
Os seguintes comandos sqlplus podem ser úteis:
SET LINESIZE linesizeo comprimento da linha. Na maioria dos casos, o valor máximo para linesizeé 32767. Você pode descobrir o seu valor máximo se definir LINESIZE com um valor inválido e verificar a mensagem de erro, para SET LINESIZE 0fornecer SP2-0267: linesize option 0 out of range (1 through 32767) (1)
SET TRIMSPOOL ON caso contrário, todas as linhas no arquivo de spool serão preenchidas com espaços em branco até que o tamanho da linha seja atingido.
SET TRIMOUT ON caso contrário, cada linha na saída será preenchida com espaços em branco até que o tamanho da linha seja atingido.
SET WRAP OFFTrunca a linha, se for maior que LINESIZE. Isso não deve acontecer se o tamanho da linha for grande o suficiente.
SET TERMOUT OFFsuprime a impressão dos resultados na saída. As linhas ainda são gravadas no arquivo de spool. Isso pode acelerar muito o tempo de execução de uma declaração.
SET PAGESIZE 0 para definir um tamanho de página infinito e evitar títulos, títulos e assim por diante.
- Existem outros
SETparâmetros relacionados à saída (NUMWIDTH, NUMFORMAT, LONG, COLSEP) e desempenho (ARRAYSIZE, LONGCHUNKSIZE).
Você precisa usar o COLUMNcomando para formatar colunas individuais.
Por exemplo column name format a30, formatará a coluna namena saída com um comprimento máximo de 30 caracteres.
Se você deseja que o tamanho da exibição não seja corrigido, mas deve ser igual ao tamanho do valor real de uma coluna em uma linha, a única maneira que eu sei é que você altera a cláusula select da sua instrução para obter o resultado desejado e usar o operador de concatenação de cadeias ||, por exemplo
select emp_id||' '||first_name||' '||last_name
from emp;
Uma descrição completa de todas as variáveis pode ser encontrada no Guia e Referência do Usuário do SQL * Plus .
Se você deseja reutilizar algumas configurações (ou definições COLUMN), é possível armazená-las em um arquivo e executá-lo quando precisar delas novamente. Você pode executar esse arquivo automaticamente se iniciar o sqlplus.
(1) "Como encontrar o valor máximo de LINESIZE (depende do sistema) (ID do documento 1547262.1)"