Bagaimana cara menggabungkan variabel psql?

8

Bagaimana saya bisa menggabungkan dua variabel psql (klien PostgreSQL)? Saya ingin membuat path absolut dengan menggabungkan variabel path direktori dan variabel nama file.

Saya sudah mencoba ini:

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

Tapi psql memberi spasi antara path dan file, dan output:

/tmp/ foo
Daniel Serodio
sumber

Jawaban:

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

Mengapa ini bekerja? Saya mengutip manualnya di sini :

\ set [nama [nilai [...]]]

Tetapkan nama variabel internal ke nilai atau, jika lebih dari satu nilai diberikan, ke gabungan dari semuanya . [...]

Tekankan milikku.

Erwin Brandstetter
sumber
1
Bahkan lebih baik dari milik saya
dezso
4

Coba ini:

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

\qechomenulis ke saluran keluaran kueri (tidak seperti \echo, yang menulis ke keluaran standar). \o |kemudian mengalihkan output ke perintah selanjutnya.

dezso
sumber