我想在函数内部创建2d数组,并使用select语句中的值填充它。我尝试这个代码,最终得到一维数组。我做错了什么?
select array(select a from t a)
=====================================
"{"(1,stxt,varchar)","(2,sint,int)"}"
create or replace function __test(
) returns text
language 'plpgsql' as
$$
declare
_dat varchar[][];
begin
_dat = (select array(select a from t a));
return array_dims(_dat);
end;
$$;
select __test();
===========
"[1:2]"
我期望最后一个命令返回两行三列的[1:2] [1:3]。
答案 0 :(得分:1)
PostgreSQL只支持一种类型的数组 - 所以你只能采用行数/你不能采用2D数组。现在没有办法做得好。