我正在使用 navicat 函数生成器来构建一个新的简单函数:
SELECT st_dimension(geometry)
FROM nature
我想使用表性质和包含几何的列几何作为多多边形来获取 POSTGIS st_dimension函数的结果。
返回类型架构为 pg_catalog,返回类型为 int4
这是 SQL 预览版:
CREATE FUNCTION "public"."NewProc"(IN "public"."geometry")
RETURNS "pg_catalog"."int4" AS $BODY$SELECT st_dimension(geometry)
FROM nature$BODY$
LANGUAGE 'plpgsql' VOLATILE;
当我尝试保存它时,会出现此错误:
错误:"选择"处或附近出现语法错误第 2 行:返回"pg_catalog"。int4" 作为 $BODY$选择... ^
我尝试对它具有的内置函数 st_dimension() 执行相同的操作,参数 nature.geometry,但我收到错误:
过程执行失败错误:缺少表"natura"的 FROM 子句条目第 1 行:..."公共"。st_dimension("公共"."几何")"(自然地理... ^
我对上述功能做错了什么?
语言应该是'sql'
,而不是'plpgsql'
。目前尚不清楚为什么函数未使用IN
参数。此外,如果nature.geometry
具有混合维度,则返回随机行的结果,因为没有ORDER BY
子句。