今天在postgresql数据库中对一个图层表使用st_area()函数,获取图层中geometry字段的面积。

Navicat中执行没有问题,如图

 idea中以及java程序中mybatis调用都报错找不到函数

[42883] ERROR: function st_area(public.geometry) does not exist

使用下面的语句查了一下函数的信息,确实是存在的

select proc.proname     函数名称,
       ns.nspname       所属模式名称,
       proc.proowner    所有者ID,与pg_autid关联,
       proc.proargtypes 函数参数列表,与pg_type关联,
       proc.prosrc      函数实例脚本,
       ns.oid
from pg_proc proc
         inner join pg_namespace ns on proc.pronamespace = ns.oid
where proc.proname like '%st_area%'

但是, 所属模式是public,我当前用的模式不是public模式,所以在函数前面加上所述模式名称就可以了

 虽然函数那里还是红色的,但是不影响正常执行

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐