параметры форматирования столбца в psql / postgresql - PullRequest
0 голосов
/ 17 февраля 2020

Как и в oracle sqlplus, у нас есть опции форматирования столбцов (например: column c3 heading City Format a20).

Мне нужно выполнить форматирование данных с помощью psql. Однако после поиска в Google - я ничего не смог найти за psql. У нас есть что-нибудь / замена для этого в psql?

1 Ответ

1 голос
/ 17 февраля 2020

Вам, вероятно, следует попробовать psql -x, как psql -x -d "your_dbname" -c "your_query;" или \x, если вы уже находитесь в оболочке psql. Это напечатает каждый столбец отдельно в новой строке.

Также попробуйте прочитать официальную psql документацию, где объясняются все возможности форматирования - https://www.postgresql.org/docs/9.6/app-psql.html (в соответствии с вашей postgres версией).

Пример 1:

$ psql -d dbname -c "SELECT * 
                     FROM pg_stat_activity 
                     WHERE datname = 'dbname' 
                     AND application_name = 'psql'
                     AND client_port = -1;"

Вывод (трудно читаемый, если окно монитора / терминала не слишком широкое):

   datid    | datname |  pid  | usesysid | usename  | application_name | client_addr | client_hostname | client_port |         backend_start         |          xact_start           |          query_start          |         state_change          | wait_event_type | wait_event | state  | backend_xid | backend_xmin |                                                   query                                                    
------------+---------+-------+----------+----------+------------------+-------------+-----------------+-------------+-------------------------------+-------------------------------+-------------------------------+-------------------------------+-----------------+------------+--------+-------------+--------------+------------------------------------------------------------------------------------------------------------
 1322253912 | dbname   | 75924 |       10 | postgres | psql             |             |                 |          -1 | 2020-02-17 14:55:51.716436+02 | 2020-02-17 14:55:51.724092+02 | 2020-02-17 14:55:51.724092+02 | 2020-02-17 14:55:51.724095+02 |                 |            | active |             |     96305140 | SELECT * FROM pg_stat_activity WHERE datname = 'dbname' AND application_name = 'psql' AND client_port = -1;
(1 row)

Пример 2:

$ psql -x -d dbname -c "SELECT * 
                        FROM pg_stat_activity 
                        WHERE datname = 'dbname' 
                        AND application_name = 'psql'  
                        AND client_port = -1;"

Вывод (гораздо более читаемый):

-[ RECORD 1 ]----+-----------------------------------------------------------------------------------------------------------
datid            | 1322253912
datname          | dbname
pid              | 75952
usesysid         | 10
usename          | postgres
application_name | psql
client_addr      | 
client_hostname  | 
client_port      | -1
backend_start    | 2020-02-17 14:56:37.88717+02
xact_start       | 2020-02-17 14:56:37.894672+02
query_start      | 2020-02-17 14:56:37.894672+02
state_change     | 2020-02-17 14:56:37.894676+02
wait_event_type  | 
wait_event       | 
state            | active
backend_xid      | 
backend_xmin     | 96305140
query            | SELECT * FROM pg_stat_activity WHERE datname = 'dbname' AND application_name = 'psql' AND client_port = -1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...