【问题标题】:Unnesting an array of arrays, to a simple array in plpgsql将数组数组取消嵌套到 plpgsql 中的简单数组
【发布时间】:2020-09-29 19:42:54
【问题描述】:

这不起作用:

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

因为似乎 unnest 表达式返回了一个表。错误信息是:

[22P02] 错误:格式错误的数组文字:“a”详细信息:数组值必须 以“{”或维度信息开头。其中:SQL 语句“SELECT unnest(nested)::text[]" PL/pgSQL 函数 inline_code_block 第 7 行 作业

所以我想解决方案是用未嵌套的返回值创建一个数组?我该怎么做?

【问题讨论】:

    标签: postgresql plpgsql


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-08
      相关资源
      最近更新 更多