0
我有这样的Postgres/PostGIS的查询:由于转义字符串而导致PostGIS查询失败?
UPDATE raw.geocoding
SET the_geom = ST_Transform(ST_GeomFromText('POINT(((E'-96.6864379495382')::float8) ((E'32.792527154088')::float8))', 4326),3081)
WHERE id=((10793455)::int4)
当我运行它,我得到这个错误:
ERROR: syntax error at or near "')::float8) ((E'"
LINE 2: ...sform(ST_GeomFromText('POINT(((E'-96.6864379495382')::float8...
^
********** Error **********
ERROR: syntax error at or near "')::float8) ((E'"
SQL state: 42601
Character: 94
我抓我的头,因为PostGIS中没有与逃脱的问题
UPDATE raw.geocoding
SET the_geom = ST_Transform(ST_GeomFromText('POINT(:longitude :latitude)', 4326),3081)
WHERE id=:id
我运行的Postgres 9.1.5和PostGIS的:数据(for example),和查询从基于Npgsql的这个参数化查询产生2.0.1。
感谢。你是对的 - 我甚至没有关于报价的事情。我使用的pgAdmin III,它的颜色编码显示的数字为不同的颜色,因为报价正在他们面前解开了,我流逝成被返回到我的Visual Studio颜色编码的思想范式,其中的参数有不同的颜色。 –
现在另一个问题:'$$ POINT(' - 96.6864379495382''32 .792527154088')$$'不起作用,但'$$ POINT(-96.6864379495382 32.792527154088)$$'。 (有或没有参数之间的逗号没有区别。)这是因为PostGIS函数不喜欢引用数字吗? –
POINT()不是一个函数它的点的文本字符串表示的一部分。你也必须引用它。 '要点(1 1)' ::几何 –