2013/6/18 Paulo Bastos <[email protected]>

> Amigos (as),
>
> estou utilizando o select abaixo para listar os atributos de tabelas de um
> desterminado schema.
> Estou utilizando o psql.
> Como faço para ajustar a qualidade da saida? (está sobrepondo)
>

Para não bagunçar a saída, é recomendado usar um paginador, o padrão,
geralmente, é o more. Eu sinceramente prefiro o "less" (padrão dependendo
da distribuição). Mas o "less" ainda não resolve o problema, uma dica é
usar o "-S" na sua chamada, assim ele irá criar uma espécie de scroll, onde
você navega no resultado usando as setas do teclado.

Para fazer isso, você deve executar **antes** de entrar no psql:

     export PAGER='less -S'

Uma dica é salvar essa linha no seu ~/.bash_profile ou equivalente para
ficar persistente. A partir da versão 9.2 você pode fazer o mesmo
**dentro** do psql também:

    \setenv PAGER 'less -S'

Com isso, ao executar uma consulta que ocupe muito espaço, o psql abrirá o
less com navegação. Caso não seja acostumado com o less, para sair do
mesmo, basta pressionar a tecla "q".


e como mandar a saida
> para um arquivo txt?
>
>

Infinitas maneiras (algumas citadas pelos colegas, mas vou repetir pra
juntar numa lista), como:

1. Chamar o psql salvando num arquivo:

    psql -c "SELECT ... " -o resultado.txt
    psql -c "SELECT ... " --output=resultado.txt
    psql -c "SELECT ... " > resultado.txt
    psql -c "SELECT ... " >> resultado.txt  # insere no final do arquivo

2. Dentro do psql:

    -- "Joga" as saídas para o arquivo resultado.txt:
    \o resultado.txt
    SELECT ...
    -- Volta a saída para a tela (stdout):
    \o

3. Se usar o less, também pode salvar por ele. Após executar a consulta
pressione a tecla "s" e digite o nome do arquivo.


Atenciosamente,
-- 
Matheus de Oliveira
Analista de Banco de Dados
Dextra Sistemas - MPS.Br nível F!
www.dextra.com.br/postgres
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a