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)' ::幾何 –