我正在使用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;
当我尝试保存时,会收到此错误:
错误:“SELECT”处或附近的语法错误 LINE2:返回“pg_catalog”。“int4”AS $ BODY $ SELECT ... ^
我尝试使用参数nature.geometry中的build in function st_dimension()进行相同操作,但是我得到了错误:
程序执行失败 错误:表“natura”缺少FROM子句条目 第1行:......“public”。“st_dimension(”“public”“。”“geometry”“)”(natura.geo ... ^
上述功能我做错了什么?
答案 0 :(得分:1)
语言应该是'sql'
,而不是'plpgsql'
。目前尚不清楚为什么函数没有使用IN
参数。此外,如果nature.geometry
具有维度的混合,那么我返回随机行的结果,因为没有ORDER BY
子句。