use*_*256 32 sql postgresql environment-variables
是否可以在.sql文件中使用Linux环境变量?我正在使用copy/select查询写入输出文件,我想将该目录放在变量中.所以我想做一些事情:
COPY (SELECT * FROM a)
TO $outputdir/a.csv
Run Code Online (Sandbox Code Playgroud)
Outputdir将在我的环境中设置.这可能吗?
Mat*_*sOl 45
您可以将shell命令的结果存储在psql
变量中,如下所示:
\set afile `echo "$outputdir/a.csv"`
COPY (SELECT * FROM a) TO :'afile';
Run Code Online (Sandbox Code Playgroud)
另一个(在我看来更好)解决方案是仅使用psql
变量,请参阅我的关于psql变量的答案,这与您的示例类似.您案例的一个例子是:
\set outputdir '/path/to/output'
\set afile :outputdir '/a.csv'
COPY (SELECT * FROM a) TO :'afile';
Run Code Online (Sandbox Code Playgroud)
请注意,在示例中,您需要在脚本文件中设置变量,但如果在调用时设置它,则可以跳过第一行psql
:
psql --set=outputdir="$outputdir" <conn parameters> -f /path/to/yourscript.sql
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
15826 次 |
最近记录: |