本文介绍了PostgreSQL-传递要复制到SQL脚本中的参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我可以在我的SQL脚本中很好地使用-v v1=foo
语法,但我不知道如何在COPY语句中使用该参数。我想执行如下脚本:
psql -d my_db -f ./exports.sql -v v1="'/Users/username/test.json'"
并在脚本中执行以下内容的一些版本:
copy (
select * from bar
) to :v1;
或
DO $$
BEGIN
EXECUTE
'copy (select * from bar) to ' || :v1;
END $$
或
DO $$
BEGIN
EXECUTE
format('copy (select * from bar) to %L',:v1);
END $$
但以上工作均未完成:(
推荐答案
变量替换在字符串文本中不起作用。
使用psql
%sgexec
:
SELECT format(
$$copy (select * from bar) to %L$$,
:v1
) gexec
这篇关于PostgreSQL-传递要复制到SQL脚本中的参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!