Postgresql - 在 sql 脚本中将参数传递给 COPY

2024-01-16

我可以使用-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(使用前将#替换为@)

Postgresql - 在 sql 脚本中将参数传递给 COPY 的相关文章

随机推荐