我有这样的疑问:
SELECT
name, location, date, price_type, price, currency, category, amount, id
FROM
jobs
WHERE
status = 'ACTIVE'
AND CAST(category AS TEXT ) IN ${categories}
AND ST_Contains(ST_GeomFromText('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))'), ST_GeomFromText('POINT(5 5)'));
`);
一切正常,直到我尝试使用 ST_GeomFromText 时出现以下错误:
function st_geomfromtext(unknown) does not exist
。我查看了文档,它似乎是正确的格式,但由于某种原因它不起作用,我不知道我做错了什么。
与往常一样,此类问题存在三种可能性:
您已连接到尚未安装 PostGIS 的数据库
CREATE EXTENSION postgis SCHEMA public;
您的
search_path
不包含安装扩展的架构,在上述情况下public
。您可以通过明确命名架构来解决这个问题:
SELECT public.st_geomfromtext(...);
您提供给函数的参数的数据类型无法隐式转换为函数参数数据类型。由于您只提供一个
unknown
类型的参数,所以这不是您的问题,因为 unknown
可以转换为任何内容。