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

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.


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.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.