Как объединить переменные PSQL?


8

Как объединить две переменные psql (клиент PostgreSQL)? Я хочу создать абсолютный путь, объединяя переменную пути каталога и переменную имени файла.

Я пробовал это:

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

Но psql помещает пробел между путем и файлом и выводит:

/tmp/ foo

Ответы:


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

Почему это работает? Я цитирую руководство здесь :

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

Устанавливает для имени внутренней переменной значение или, если задано более одного значения, объединение всех из них . [...]

Акцент мой.


1
Даже лучше, чем у меня
Дезсо

4

Попробуй это:

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

\qechoпишет в канал вывода запроса (в отличие от \echo, который пишет в стандартный вывод). \o |затем перенаправляет вывод в следующую команду.


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.