Como concatenar variáveis ​​psql?

8

Como concatenar duas variáveis ​​psql (cliente PostgreSQL)? Eu quero gerar um caminho absoluto concatenando uma variável de caminho de diretório e uma variável de nome de arquivo.

Eu tentei isso:

\set path '/tmp/'
\set file 'foo'
\echo :path:file

Mas o psql coloca um espaço entre o caminho e o arquivo e gera:

/tmp/ foo
Daniel Serodio
fonte

Respostas:

8
\set path '/tmp/'
\set file 'foo'
\set pf :path:file \echo :pf
/tmp/foo

Por que isso funciona? Cito o manual aqui :

\ set [nome [valor [...]]]

Define o nome da variável interna como valor ou, se mais de um valor for fornecido, para a concatenação de todos eles . [...]

Ênfase minha.

Erwin Brandstetter
fonte
11
Ainda melhor do que o meu
dezso
4

Tente o seguinte:

\set path /tmp/
\set file foo
\qecho :path:file \o | sed s/\ //
/tmp/foo

\qechograva no canal de saída da consulta (diferente de \echo, que grava na saída padrão). \o |Em seguida, redireciona a saída para o comando subseqüente.

dezso
fonte