小编典典

在PSQL脚本中使用环境变量

sql

是否可以在.sql文件中使用Linux环境变量?我正在使用复制/选择查询来写入输出文件,并且我想将该目录放入变量中。所以我想做这样的事情:

COPY (SELECT * FROM a)
TO $outputdir/a.csv

Outputdir将在我的环境中设置。这可能吗?


阅读 222

收藏
2021-04-17

共1个答案

小编典典

您可以将shell命令的结果存储在这样的psql变量中:

\set afile `echo "$outputdir/a.csv"`
COPY (SELECT * FROM a) TO :'afile';

您的案例的一个例子是:

\set outputdir '/path/to/output'
\set afile :outputdir '/a.csv'
COPY (SELECT * FROM a) TO :'afile';

请注意,在示例中,您需要在脚本文件中设置变量,但是如果在调用时设置了第一行,则可以跳过第一行psql

psql --set=outputdir="$outputdir" <conn parameters> -f /path/to/yourscript.sql
2021-04-17