此查询有效:
SELECT replace('hello world','world','andrew');
输出:
replace
--------------
hello andrew
(1 row)
但这不是:
SELECT replace(geo,',',' ') FROM image_meta ;
ERROR: function replace(point, unknown, unknown) does not exist
LINE 1: SELECT replace(geo,',',' ') FROM image_meta ;
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
(非工作示例最初发布不正确;这个是正确的。)
“geo”的数据类型为POINT
。
答案 0 :(得分:0)
事实证明,您可以查询POINT
数据类型的各个参数,所以
select geo[0],geo[1] from image_meta limit 1;
返回点的各个x,y值,以便我可以将它们转换为postGIS的几何数据类型。
我用来更新整个数据库的查询是
update image_meta SET geom=st_geographyfromtext('SRID=4326;POINT(' || geo[0] || ' ' || geo[1] || ')');
答案 1 :(得分:0)
SELECT ST_AsText(geo) FROM image_meta;
还会将几何图形作为文本。有了这个,你可以使用替换。