我在具有其他空间类型的表中有一个文本字段。作为 SSIS 包的一部分,我使用此文本字段在同一个表上运行更新(作为 SQL 任务)并更新几何和地理列。我昨天能够成功运行以下查询
UPDATE Location
SET [Geometry] = geometry::STGeomFromText(ShapeText, 4326).MakeValid()
FROM Location
WHERE ShapeText IS NOT NULL
但是,今天它一直在抛出以下异常:
消息 6522,级别 16,状态 1,第 10 行在执行用户定义的例程或聚合“几何”期间发生 .NET Framework 错误:System.FormatException:24141:输入的位置 65536 处应有一个数字。
当我查看形状时,它绝对是一个有效的形状。所以问题不在于形状,而在于 SQL 最多只能从列中读取 65536 个字符。当 shapetext 少于 65536 个字符时,它可以工作。
如果有人能帮我解决这个问题并让我知道如何从文本字段中读取超过 65536 个字符,那就太好了。