【发布时间】:2020-02-16 12:53:37
【问题描述】:
我有一个 Postgresql 9.6(和 postgis 2.5)函数,它根据记录的几何形状计算带有参数的 json。 我创建了一个json字段并在那里写了json计算输出,一切都很好。
UPDATE public.recordtable
SET polygoncalc = public.fn_calculate_polygon(5)
WHERE id = 5;
当我尝试在 Postgres 11.2 上运行它时,它返回一个错误:
SQL Error [0A000]:ERROR: set-returning functions are not allowed in UPDATE
基于这个link我知道postgresql发生了变化,但老实说,
如何将 json 写入 Postgres 11.2 中的字段而不出现错误?
提前谢谢你。
编辑:我将输出字段更改为 json 类型并添加了函数文本
the function:
CREATE OR REPLACE FUNCTION public.fn_create_jsn_point(pid double precision)
RETURNS TABLE(jsn json)
LANGUAGE plpgsql
AS $function$
DECLARE
p_id double precision = pid;
myjson json = null ;
begin
return QUERY
select row_to_json(finaljson)
from(
select
ST_x(a.wgs_84_dump_point) as X,
ST_y(a.wgs_84_dump_point) as Y
(
select (st_transform(st_centroid(t.geom),4326)) wgs_84_dump_point
from baserecords t where base_id = p_id
) a ) finaljson;
END;
$function$
;
【问题讨论】:
-
不返回一组多边形,而是一个多边形..
-
@JGH 我在原始函数中返回一个多边形...
-
能发一下功能代码吗?
-
@JGH,这里我加了功能码
标签: postgresql postgis