Postgresql 正在取消对数组数组的测试,将其转换为plpgsql中的简单数组

Postgresql 正在取消对数组数组的测试,将其转换为plpgsql中的简单数组,postgresql,plpgsql,Postgresql,Plpgsql,这不起作用: DO $do$ DECLARE nested varchar[][] := '{{a},{b},{c}}'; unnested varchar[]; BEGIN unnested := unnest(nested)::text[]; END $do$; 因为,看起来,最不合适的表达式返回一个表。错误消息是: [22P02]错误:数组文字格式错误:“a”详细信息:数组值必须为 以“{”或维度信息开始

这不起作用:

DO
$do$
    DECLARE
        nested   varchar[][] := '{{a},{b},{c}}';
        unnested varchar[];
    BEGIN    
        unnested := unnest(nested)::text[];
    END
$do$;
因为,看起来,最不合适的表达式返回一个表。错误消息是:

[22P02]错误:数组文字格式错误:“a”详细信息:数组值必须为 以“{”或维度信息开始。其中:SQL语句“选择” unnest(嵌套)::text[]”PL/pgSQL函数内联代码块第7行 分配


因此,我想解决方案是用最不常用的返回值创建一个数组?我该怎么做?

您不能将集合返回函数的结果强制转换为数组

DO
$do$
DECLARE
  nested   varchar[][] := '{{a},{b},{c}}';
  unnested varchar[];
BEGIN    
  unnested := array(select * from unnest(nested));
END
$do$;