我已經有了一個完整的WKT(熟知文本)在一個varchar(max)列的表獲取從VARCHAR(最大值)的幾何形狀。這與格式完全相同。所以,例如,其中一個值是:在更新查詢
POLYGON ((174.893529167059 -37.0260462162965,174.89351593407 -37.0260221329151,174.893508034056 -37.0260077002766,174.893444415879 -37.0258916500588,174.893416916056 -37.0258414997842,174.893481733297 -37.0258186834198,174.893492016755 -37.0258150663863,174.89349653254 -37.025823316032,174.893512415978 -37.0258522827285,174.893556883897 -37.0259333832477,174.893591032956 -37.0259956661343,174.893604265986 -37.0260197504078,174.893575149738 -37.0260300006258,174.893529167059 -37.0260462162965))
但是,我需要將此varchar(max)字段轉換爲幾何字段。不幸的是,爲了做到這一點,SQL Server需要一些其他信息,所以我不能只將字段的類型從varchar(max)更改爲geometry。
我在同一個表(MyGeometry)中創建了一個空白幾何列,但我試圖轉換它失敗。這是我的代碼(其中2193是我正在處理的CRS)。 WKT是我的varchar(max)字段,MyGeometry是我的新幾何字段。
UPDATE MY_TABLE
SET MyGeometry = geometry::STPolyFromText('' + WKT + '', 2193)
編輯 - 當前回來說WKT無效(System.FormatException 24111 - 輸入無效)。
,因爲它與其他一些投入我在它是如何完美的風格相匹配這是奇怪的。
UPDATE MY_TABLE SET MyGeometry = geometry :: STPolyFromText(WKT,2193) – cungiderm
WKT上不需要雙引號。 WKT已經是一個文本。 (假設WKT是你的列名) – cungiderm
已經試過'UPDATE MY_TABLE SET MyGeometry = GEOMETRY :: STPolyFromText(WKT,2193)'(還有STGeomFromText),但仍然沒有運氣。也許我在那裏有一些無效的幾何圖形,但我懷疑它。 – user25730