问题描述
我正在 Postgresql 13 中编写一个简单的函数,但有一些我无法解决的错误。这是重现错误的简化代码:
create or replace function my_schema.test_function(some_directory text default 'Downloads')
returns void
language plpgsql
as
$body$
declare
home_dir text := '/home/my_user_name/';
file_path text;
one_csv text;
csv_arr text[] = array['file_1.csv','file_2.csv','file_3.csv'];
begin
drop table if exists to_insert;
create temp table to_insert(col1 text,col2 timestamptz);
foreach one_csv in array csv_arr
loop
file_path = home_dir || some_directory || '/' || one_csv;
copy to_insert (col1,col2)
from file_path
delimiter ','
csv header;
end loop;
delete from my_schema.target_table;
insert into my_schema.target_table
select * from to_insert;
drop table if exists to_insert;
end
$body$
抱歉没有突出显示,我不知道如何在stackoverflow上突出显示Postgresql。
我在运行代码时得到的错误是:
ERROR: Syntax error at or near "file_path"
LINE 22: from file_path
如果不是 file_path
我只是拼出路径,例如'/home/my_user_name/Downloads/file_1.csv'
,然后代码按预期执行而没有任何错误。但这当然不是我想做的。我需要为每个循环变量构建不同的路径。
知道我缺少什么以及如何使我的功能正常工作吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)