gpt4 book ai didi

sql - PostgreSQL:ST_GeomFromText(未知)不存在

转载 作者:行者123 更新时间:2023-11-29 11:43:10 25 4
gpt4 key购买 nike

问题来了

我现在刚刚安装了 PostgreSQL 并尝试构建一个 geoloc 数据库。为此,我安装了 PostGIS 扩展和 PostGIS_Topology。

在我的 pgAdmin UI 中,我可以看到我的模型,我的模式是“Geo”,我可以在下面的函数列表中看到可用的 postGis 函数(大约 1000 个,见屏幕截图)

问题是,当我尝试在数据库中插入一条新记录时,示例:

INSERT INTO "Geo".points(point, lat, lng) VALUES (ST_GeomFromText('POINT(42.555 32.222)'),'42.555','32.222');

我收到这个错误:

ERROR : function st_geomfromtext(unknown) does not exist
SQL state : 42883
Character : 51

认为问题来自扩展可能未启用,但看起来没问题,函数列表在数据库模型信息中可见...

还尝试从数据库名称调用该函数,但无法正常工作...

..."Geo".ST_GeomFromText('...')...

另一个奇怪的事情是,当我尝试这个命令时:

SELECT "Geo".ST_GeomFromText('POINT(42.222 32.555)')

有效...

这是截图:

enter image description here

我是 PostgreSQL 的新手,所以这可能是个愚蠢的问题……但我查看了堆栈和文档,没有找到任何符合我的问题的东西……

感谢阅读/帮助

[编辑]

在@mlinth 测试了你的解决方案后,我仍然面临同样的问题......

尝试时

INSERT INTO "Geo".points(point, lat, lng) 
SELECT "Geo".ST_GeomFromText('POINT(32.222 42.555)'),'42.555','32.222';
or
INSERT INTO "Geo".points(point, lat, lng)
SELECT "Geo".ST_point(32.222,42.555 ),'42.555','32.222';

我遇到错误,SQL 状态:42804 字符 51(“地理”带下划线)删除“地理”会导致错误,例如“函数 ST_GeomFromText(或 ST_POINT)(未知)不存在”...

[编辑2]

这个函数似乎有效:

SELECT "Geo".ST_GeomFromText('POINT(42.222 35.555)')

返回

    st_geomfromtext "Geo".geometry
1 : "010100000023DBF97E6A1C4540D7A3703D0AC74140"

创建语句:

CREATE TABLE "Geo".points
(
id serial NOT NULL,
point point NOT NULL,
lat text,
lng text,
CONSTRAINT points_pkey PRIMARY KEY (id)
)
WITH (
OIDS=FALSE
);
ALTER TABLE "Geo".points
OWNER TO postgres;

最佳答案

Point不是 PostGIS 类型,它是 native Postgresql 类型。

我认为您需要制作点列类型的几何图形,然后 PostGIS 函数才能工作。

关于sql - PostgreSQL:ST_GeomFromText(未知)不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28717373/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com