我可以使用-v v1=foo
语法对于我的 sql 脚本中的查询来说很好,但我不知道如何在复制语句中使用该参数。我想执行如下脚本:
psql -d my_db -f ./exports.sql -v v1="'/Users/username/test.json'"
并在脚本中执行以下操作:
copy (
select * from bar
) to :v1;
or
DO $$
BEGIN
EXECUTE
'copy (select * from bar) to ' || :v1;
END $$
or
DO $$
BEGIN
EXECUTE
format('copy (select * from bar) to %L',:v1);
END $$
但以上都不起作用:(
变量替换在字符串文字中不起作用。
Use psql
's \gexec
:
SELECT format(
$$copy (select * from bar) to %L$$,
:v1
) \gexec
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)