簡體   English   中英

如何在Postgres存儲過程中將數據插入String數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM