今天在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模式,所以在函数前面加上所述模式名称就可以了
虽然函数那里还是红色的,但是不影响正常执行