Estou selecionando em uma tabela com colunas de texto longo. Eu gostaria de quebrar linhas longas em um comprimento máximo de linha.
A partir de:
SELECT * FROM test;
test_id | text
--------+-----------------------------------------------------------------------
1 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris lorem
Para:
test_id | text
--------+-----------------------------
1 | Lorem ipsum dolor sit amet,+
| consectetur adipiscing elit+
| . Mauris lorem
Se você estiver usando a
psql
ferramenta de linha de comando, emita este comando primeiro:Ele deve então envolver longas linhas em sua janela de terminal da seguinte forma:
Você também pode definir o número de colunas para quebrar com
e você pode alterar os pontos para elipses com
Mais informações: http://www.postgresql.org/docs/current/static/app-psql.html
Minha resposta não responderá diretamente à sua pergunta porque não acho que o próprio psql possa fazer isso especificamente. Mas,
\x
ativará a saída expandida, que colocará seus valores assim:Você também pode configurar seu pager para não quebrar linhas.
Para alternar para exibição normal, basta emitir o comando \x novamente. Explicação :
Com a
Regexp_Replace
função, podemos controlar a largura exata de cada coluna separadamente. No seu exemplo, 27 parece ser a largura de coluna desejada; então nós, obtendo
Como funciona: Dizemos
Regexp_Replace
para substituir um bloco de 27 caracteres consecutivos (.{27}
) , por ele mesmo (\1
) mais uma nova linha (\n
) ; e o sinalizador global (g
) diz para fazer isso para todos esses blocos de 27 caracteres.