Come concatenare le variabili psql?


8

Come posso concatenare due variabili psql (client PostgreSQL)? Voglio generare un percorso assoluto concatenando una variabile di percorso di directory e una variabile di nome file.

Ho provato questo:

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

Ma psql inserisce uno spazio tra il percorso e il file e genera:

/tmp/ foo

Risposte:


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

Perché funziona? Cito il manuale qui :

\ set [nome [valore [...]]]

Imposta il nome della variabile interna su value o, se viene fornito più di un valore, sulla concatenazione di tutti . [...]

Enfasi mia.


1
Ancora meglio del mio
dezso

4

Prova questo:

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

\qechoscrive nel canale di output della query (a differenza di \echo, che scrive nell'output standard). \o |quindi reindirizza l'output al comando successivo.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.