小编use*_*583的帖子

动态定义一个RETURN表(列类型,名称)用于后续循环

我想对ST_Intersection(clipper_geom, clipped_geom)来自表的行数执行。

https://postgis.net/docs/ST_Intersection.html

https://postgis.net/docs/ST_Intersects.html

POSTGIS 交集本身不支持处理多个几何图形,这与ST_Intersects()我必须设计一个函数(返回一个表)来选择与我的clipper_geomusing相交的行ST_Intersects()、循环遍历结果集并计算与 的每个交集有关ST_Intersection()。字段geomclipped_geom_wkt是记录剪裁几何体的字段。

该功能有效,但我需要为每个要生成剪辑的表使用不同的功能。我想动态读取输入表(列名称和类型)并在RETURN语句中定义两者。

所有字段名称和类型都相同,只是geom更新和clipped_geom_wkt添加。

我尝试搜索 Stack Overflow,找到了有关如何创建动态表结构的示例,但没有一个LOOP对第一个结果执行后续操作,其中列名必须匹配才能插入/更新新数据。

这是我到目前为止所提出的,但我不确定如何执行该LOOP部分、添加clipped_geom_wkt字段和更新geom字段。一些回复建议RETURNS TABLE (...)如果添加更多字段SETOF...

/sf/ask/1247503771/

但似乎动态生成的列仅支持RETURNS SETOF ...

/sf/ask/821817951/#11751557

/sf/ask/602362211/#8611675

CREATE OR REPLACE FUNCTION clip_palin_polygon_complete(clipped_table text,clipper_geom text, age_sequence VARCHAR)
RETURNS TABLE (rec clipped_table, clipped_geom_wkt text)) AS $$ --not sure if this is the right way to …
Run Code Online (Sandbox Code Playgroud)

postgresql dynamic-sql plpgsql postgis

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

dynamic-sql ×1

plpgsql ×1

postgis ×1

postgresql ×1