0

我想在函数内创建二维数组并用 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]。

4

1 回答 1

1

PostgreSQL 仅支持一种类型的数组 - 因此您只能采用行数组/您不能采用 2D 数组。现在没有办法做好。

于 2012-05-07T14:19:25.097 回答