【发布时间】:2016-08-02 14:38:24
【问题描述】:
我在 varchar(max) 列中有一个充满 WKT(众所周知的文本)的表格。它的格式与几何形状完全相同。因此,例如,其中一个值是:
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 - 输入无效)。
这很奇怪,因为它与我在样式方面的其他一些输入完美匹配。
【问题讨论】:
标签: sql-server geometry