Wie verkette ich psql-Variablen?


8

Wie kann ich zwei psql-Variablen (PostgreSQL-Client) verketten? Ich möchte einen absoluten Pfad generieren, indem ich eine Verzeichnispfadvariable und eine Dateinamenvariable verkette.

Ich habe das versucht:

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

Aber psql setzt ein Leerzeichen zwischen den Pfad und die Datei und gibt Folgendes aus:

/tmp/ foo

Antworten:


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

Warum funktioniert das? Ich zitiere das Handbuch hier :

\ set [name [value [...]]]

Setzt den internen Variablennamen auf Wert oder, wenn mehr als ein Wert angegeben ist, auf die Verkettung aller . [...]

Hervorhebung von mir.


1
Noch besser als meins
dezso

4

Versuche dies:

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

\qechoschreibt in den Abfrage-Ausgabekanal (im Gegensatz zu dem \echo, der in die Standardausgabe schreibt). \o |leitet die Ausgabe dann an den nachfolgenden Befehl weiter.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.