簡體   English   中英

PostgreSQL:動態查詢到JSON數組

[英]PostgreSQL: Dynamic Query into JSON Array

我想使用EXECUTE語句執行動態查詢,並將結果放入json數組。

我正進入(狀態

SQL錯誤[22P02]:錯誤:格式不正確的數組文字:“ [格式不正確的數組文字:” [{“ id”:“ 1”}]“”詳細信息:“ [”必須引入顯式指定的數組尺寸。PL / pgSQL函數....

這是我到目前為止所擁有的。

CREATE or replace function my_function()
returns json[] as $$
declare result json[];
begin
    execute '
        SELECT array_to_json(array_agg(t)) from (
            select ....
        ) t;
    ' into result;

    -- doing some stuff with the array

    return result;
END;
$$ language 'plpgsql';

如用戶“ a_horse_with_no_name”所述。 array_to_json確實返回json對象,而不是json數組。

就我而言,我可以實現我想要的功能

CREATE or replace function my_function()
returns json as $$
declare result json;
begin
    execute '
        SELECT (''{ "data": '' || json_agg(t)::text || ''}'')::json from (
            select ....
        ) t;
    ' into result;

    -- doing some stuff with the array

    return result;
END;
$$ language 'plpgsql';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM