他の空間タイプを含むテーブルにテキスト フィールドがあります。SSIS パッケージの一部として、このテキスト フィールドを使用して、同じテーブルに対して (SQL タスクとして) 更新を実行し、geometry 列と geography 列を更新しています。昨日、次のクエリを正常に実行できました
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 文字しか読み取っていないことです。また、シェイプテキストが 65536 文字未満の場合に機能します。
誰かがこれを手伝ってくれて、テキスト フィールドから 65536 文字を超える文字を読み取る方法を教えてくれたらうれしいです。