![](/img/trans.png)
[英]Creating a string array of insert queries in Postgres stored procedure and executing them
[英]How to insert data into a String array in postgres stored procedure
我有一個偽存儲過程,如下所示:
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
數組。
您可能正在尋找“數組追加”運算符||
。
但這是解決問題的一種過於復雜的方法。 您可以使用以下方法更簡單,更高效地完成此操作
SELECT array_agg(
format(
'insert into tableB(fileid) values (%L)',
fileid
)
) INTO querystring
FROM tablea;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.