2016-10-04 3 views
5

При использовании Psql в Linux, если результат моего SQL-запроса содержит много столбцов или длинных строк данных, он будет обертывать начальное представление, и только один раз, когда я перейду в сторону, он прекратит обертывание и покажет каждая строка на отдельной строке.Отключить обертку в выходе Psql

Я пробовал различные \pset options такие как format unaligned, format aligned, format wrapped, columns 0, columns 1000, но никто не казалось полностью остановки упаковки, если я не генерировать статический вывод в файл.

Как я могу установить его, чтобы никогда не завершать вывод, все еще будучи прокручиваемым и отображая результат, используя формат таблицы ascii по умолчанию?

ответ

14

Psql использует системный просмотрщик, чтобы показать его вывод в консоли. В bash он, вероятно, использует less для прокручиваемых/доступных для страницы функций, которые он предоставляет. Чтобы использовать другой просмотрщик или использовать разные настройки, вам просто нужно установить переменную среды PAGER.

psql Запуск использовать less с опцией -S или --chop-long-lines, казалось, работал для меня:

PAGER="less -SF" psql 
2

Чтобы отключить обернутый вывод запроса на выборку.

\ PSET пейджера на и \ PSET пейджера от, чтобы вернуться к старой точки зрения вывода.

1

недостаток -F или -S флаг вызывает в некоторых случаях \d some_table.

-F or --quit-if-one-screen 
    Causes less to automatically exit if the entire file can be 
    displayed on the first screen. 

-S or --chop-long-lines 
    Causes lines longer than the screen width to be chopped rather than folded. 
    That is, the portion of a long line that does not fit in the screen width is 
    not shown. The default is to fold long lines; that is, display the remainder 
    on the next line. 

Используйте их, как это:

PAGER="less -S" psql 

Кажется безопасней неудобства от того, чтобы вручную выйти меньше.

0

вероятно, вы должны использовать формат aligned для вывода:

\pset format aligned 

Вы можете проверить все доступные форматы в соответствии с вашими потребностями:

\pset format TAB 
aligned   html    latex-longtable unaligned   
asciidoc   latex   troff-ms   wrapped  

Также следует проверить PAGER установленное значение в вашей среде