我想用。执行动态查询 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';
答案 0 :(得分:0)
作为用户" 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';