简体   繁体   中英

Error using postgis st_dimension() function

I am using navicat function builder to build a new simple function:

SELECT st_dimension(geometry)
FROM nature

I want to take the result of the POSTGIS st_dimension function using the table nature and the column geometry that contains geometries as multipolygons.

The return type schema is pg_catalog and the return type is int4

This is the SQL preview:

  CREATE FUNCTION "public"."NewProc"(IN  "public"."geometry")
  RETURNS "pg_catalog"."int4" AS $BODY$SELECT st_dimension(geometry)
  FROM nature$BODY$
  LANGUAGE 'plpgsql' VOLATILE;

When i am trying to save it a get this error:

ERROR: syntax error at or near "SELECT" LINE2: RETURNs "pg_catalog"."int4" AS $BODY$SELECT... ^

I tried to do the same with the build in function st_dimension() that it has, with parameter nature.geometry but i get the error:

Procedure execution failed ERROR: missing FROM-clause entry for table "natura" LINE 1: ... "public"."st_dimension(""public"".""geometry"")"(natura.geo... ^

What I am doing wrong with the above function?

Language should be 'sql' , not 'plpgsql' . It isn't clear why you have an IN parameter that is not used by the function. Furthermore, if nature.geometry has a mixture of dimensions, then it my return the result of a random row, since there is no ORDER BY clause.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM