我正在尝试运行一个查询,该查询执行数组中每个元素的foreach
,然后将其复制到具有自定义命名文件的目录中。这是我目前的代码:
DO
$do$
declare
x varchar;
y varchar;
arr varchar[] := array['item1','item2'];
begin
foreach x in array arr
loop
y := concat('C:\Outputs\output_' , x , '.csv');
copy (select * from pdtable where pdtable.area = x) to y With CSV;
end loop;
end
$do$
但是,这会在to y
语句的副本声明中遇到错误。有没有其他方法可以做到这一点?
答案 0 :(得分:2)
https://www.postgresql.org/docs/current/static/functions-string.html
DO
$do$
declare
x varchar;
y varchar;
arr varchar[] := array['item1','item2'];
begin
foreach x in array arr
loop
y := concat('C:\Outputs\output_' , x , '.csv');
execute format('copy (select * from pdtable where pdtable.area = %L) to %L With CSV',x,y);
end loop;
end
$do$