【问题标题】:Error using postgis st_dimension() function使用 postgis st_dimension() 函数时出错
【发布时间】:2013-10-13 13:50:08
【问题描述】:

我正在使用navicat function builder来构建一个新的简单函数:

SELECT st_dimension(geometry)
FROM nature

我想获取 POSTGIS st_dimension 函数的结果,使用表性质和包含作为多面体的几何的列几何。

返回类型 schema 是 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”处或附近的语法错误 第 2 行:返回 "pg_catalog"."int4" 作为 $BODY$SELECT... ^

我尝试对它具有的内置函数 st_dimension() 执行相同的操作,使用参数 nature.geometry 但我收到错误:

程序执行失败 错误:缺少表“natura”的 FROM 子句条目 第 1 行:...“public”.“st_dimension(""public"".""geometry"")"(natura.geo... ^

我对上述功能做错了什么?

【问题讨论】:

    标签: sql postgresql postgis navicat


    【解决方案1】:

    语言应该是'sql',而不是'plpgsql'。目前尚不清楚为什么您有一个未被函数使用的IN 参数。此外,如果nature.geometry 具有混合维度,那么它会返回随机行的结果,因为没有ORDER BY 子句。

    【讨论】:

    • 成功了(将语言更改为 SQL)。我知道关于 ORDER BY 的事实。我只是想让它现在工作。没什么特别的!
    猜你喜欢
    • 2015-01-08
    • 2015-02-05
    • 2015-11-10
    • 1970-01-01
    • 2017-08-12
    • 2013-08-24
    • 1970-01-01
    • 2014-07-26
    • 1970-01-01
    相关资源
    最近更新 更多