Postgres 动态 COPY 语句
Postgres Dynamic COPY Statement
我正在尝试 运行 对数组的每个元素执行 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
语句的复制语句中遇到错误。有其他方法可以做到这一点吗?
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$
我正在尝试 运行 对数组的每个元素执行 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
语句的复制语句中遇到错误。有其他方法可以做到这一点吗?
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$