我有一些功能想从服务器端代码获取到数据库中。
我不知道如何在 plpgsql 中设置多维 varchar 数组的值。
这是我正在尝试做的一个例子:
`CREATE OR REPLACE FUNCTION my_function (my_arg integer) RETURNS text[][] AS
$$
DECLARE
my_arr varchar[][];
r_row RECORD;
counter integer:= 1;
BEGIN
FOR r_row IN SELECT my_stuff1, my_stuff2 FROM my_table WHERE my_val = my_arg LOOP
my_arr[counter][1] := r_row.my_stuff1;
my_arr[counter][2] := r_row.my_stuff2;
my_arr[counter][3] := 'my_string';
END LOOP;
return my_arr;
END;
$$
LANGUAGE plpgsql;`
对于我的生活,我无法弄清楚如何让它发挥作用。
任何帮助都会很棒。顺便说一句,我正在使用 postgres 8.1(卡在那个版本)。
最佳答案
这样试试,我测试没问题。
CREATE OR REPLACE FUNCTION my_function (my_arg integer) RETURNS text[][] AS
$$
DECLARE
my_arr varchar[][];
r_row RECORD;
counter integer:= 1;
BEGIN
FOR r_row IN SELECT my_stuff1, my_stuff2 FROM my_table WHERE my_val = my_arg LOOP
my_arr[counter] := array[r_row.my_stuff1,r_row.my_stuff2,'my_string'];
counter :=counter+1;
END LOOP;
return my_arr;
END;
$$
LANGUAGE plpgsql;
关于sql - 在 plpgsql (postgres) 中创建多维 varchar/text 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3427230/