postgresql 如何编写一个select函数来将表数据转换为JSON?

cvxl0en2  于 2023-03-17  发布在  PostgreSQL
关注(0)|答案(1)|浏览(205)

我正在使用postgresql sp函数获取JSON格式的表数据。但是我得到了这个错误。
查询结构与函数结果类型DETAIL不匹配:返回的类型json与列1中的预期类型uuid不匹配。上下文:SQL语句“SELECT数组到json(数组聚集(行到json(技术别名)))FROM(从“Dcep”.“技术”中选择 *)技术别名”PL/pgSQL函数“Dcep”.jsontechnologies()返回查询SQL状态时的第3行:42804
我试过这个功能

CREATE OR REPLACE FUNCTION "Dcep".jsontechnologies()
RETURNS TABLE
(id uuid, technologyname text, 
technologytype text,
 status text,
createddate timestamp without time zone,
 createdby text, createdip text,
lastmodifieddate timestamp without time zone,
lastmodifiedby text,
 lastmodifiedip text, componentid uuid
) LANGUAGE 'plpgsql' AS 
$BODY$
BEGIN
RETURN Query 
SELECT array_to_json(array_agg(row_to_json(tech_alias)))
FROM (select * from "Dcep"."Technologies") tech_alias; END;
$BODY$; ALTER FUNCTION "Dcep".jsontechnologies() OWNER TO postgresql;
j8yoct9x

j8yoct9x1#

我解决了错误,我将查询更改为
从(选择)中选择json_build_object('technologies',json_agg(techs))技术 t.“身份证”, t.“技术名称”, t.“技术类型”, t.“状态”, t.“组件ID” 从“Dcep”。“技术”t)techs;
此查询有效!!!

相关问题