【发布时间】:2019-07-03 05:38:45
【问题描述】:
我有一个伪存储过程,如下所示:
CREATE OR REPLACE FUNCTION get_data()
RETURNS void AS $$
DECLARE
rec_new RECORD;
querystring TEXT[];
cursor_file CURSOR FOR
select * from tableA;
BEGIN
--open the file cursor
OPEN cursor_file;
LOOP
FETCH cursor_file into rec_new;
EXIT WHEN NOT FOUND;
querystring='{insert into tableB(fileid) values %}',rec_new.fileid;
END LOOP;
CLOSE cursor_file;
END; $$
LANGUAGE plpgsql;
我想创建多个插入查询,其中动态 fileId 在循环上进行迭代,并将它们放在一个字符串数组 ('querstring') 中,由逗号分隔符分隔。上面的代码没有给我确切的结果。实现这一目标的正确方法是什么?
预期的输出是这样的:
{insert into tableB(fileid) values ('fileA'),
insert into tableB(fileid) values ('fileB'),
insert into tableB(fileid) values ('fileC')}
那么这个querystring数组也需要被执行。
【问题讨论】:
标签: sql postgresql stored-procedures stored-functions