[英]How to add a new item into character varying array in PostgreSQL
I am trying to start an plpgsql function to store in a variable several elements of an array of type character varying, I would like to know what is the syntax to store element by element.我正在尝试启动一个 plpgsql function 以在变量中存储类型字符变化的数组的几个元素,我想知道逐个元素存储的语法是什么。
If I understood your question correctly, you want to append to an array using a loop in plpgsql
.如果我理解正确你的问题,你想 append 到数组使用plpgsql
中的循环。
Below are a couple strategies for doing that:以下是一些这样做的策略:
create or replace function add_new_item_to_array() returns void as $$
DECLARE
tmp_elem varchar;
elem1 varchar;
elem2 varchar;
elem3 varchar;
varchar_array varchar[];
BEGIN
elem1 := 'elem1';
elem2 := 'elem2';
elem3 := 'elem3';
-- option 1: literal array construction, if you know all the elements in advance
varchar_array := array[elem1, elem2, elem3];
-- option 2: array construction with a loop using sql query
varchar_array := array[]::varchar[];
FOR tmp_elem IN SELECT elem1 UNION SELECT elem2 UNION SELECT elem3 LOOP
varchar_array := varchar_array || tmp_elem;
-- alternative syntax:
-- varchar_array := array_append(varchar_array, tmp_elem);
END LOOP;
RAISE NOTICE 'varchar_array: %', varchar_array;
END
$$ language plpgsql;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.