如何串联psql变量?


8

如何连接两个psql(PostgreSQL客户端)变量?我想通过串联目录路径变量和文件名变量来生成绝对路径。

我已经试过了:

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

但是psql在路径和文件之间放置一个空格,并输出:

/tmp/ foo

Answers:


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

为什么这样做?我在这里引用手册:

\ set [名称[值[...]]]

将内部变量名称设置为value,或者如果给定多个值,则将其全部串联。[...]

强调我的。


1
比我的
还要

4

尝试这个:

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

\qecho写入查询输出通道(不同于\echo,它写入标准输出)。 \o |然后将输出重定向到后续命令。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.