在Linux中使用Psql时,如果我的SQL查询的结果包含许多列或长数据字符串,它将包装初始视图,只有当我滚动到侧面时它才会停止换行并在单独的每一行上显示线。
我尝试了各种\pset
options,例如format unaligned
,format aligned
,format wrapped
,columns 0
,columns 1000
,但似乎没有em>完全停止换行,除非我为文件生成静态输出。
如何将其设置为永不包装输出,同时仍然可滚动并使用默认的ascii表格式显示结果?
答案 0 :(得分:37)
Psql
使用系统查看器在控制台中显示其输出。在bash
中,它可能会使用less
来提供它所提供的可滚动/可分页功能。要使用其他查看器或使用不同的设置,只需设置PAGER
环境变量即可。
使用psql
或less
选项运行-S
以使用--chop-long-lines
似乎对我有用:
PAGER="less -S" psql
您还可以在less
中查看输出时启用此功能,方法是键入-S
和输入。
答案 1 :(得分:9)
禁用选择查询的包装输出。
\ pset pager 和 \ pset pager off 切换回旧的输出视图。
答案 2 :(得分:7)
less -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
对于不得不手动退出的不便,似乎更安全。
答案 3 :(得分:3)
psql
的默认寻呼机是 less
。那么对于没有包装的行,必须使用 less -S
。
PAGER="less -S" psql
是一个很好的方法。但是里面psql
你可以使用
\setenv PAGER 'less -S'
答案 4 :(得分:1)
可能你应该使用aligned
格式输出:
\pset format aligned
您可以检查所有可用格式以满足您的需求:
\pset format TAB
aligned html latex-longtable unaligned
asciidoc latex troff-ms wrapped
此外,您应该检查环境中的PAGER
配置值