SQL Server 2008 R2:将数据类型varchar转换为几何体
我正在用几何体路径条件的一些值更新表 在下面的示例中:我将表名传递为SQL Server 2008 R2:将数据类型varchar转换为几何体,sql,sql-server,sql-server-2008-r2,geometry,Sql,Sql Server,Sql Server 2008 R2,Geometry,我正在用几何体路径条件的一些值更新表 在下面的示例中:我将表名传递为@table,@ColumnA(用于设置新值),@GeoPath(用于签入) 动态scipt的条件)如下所示: @Table = 'Table1' @ColumnA = 'A' @GeoPath = 0xE610000001040500000061574D5E31433140000000003EAF52405E3B0D825B92314000000000AACA52407BEECBC0FB263140000000001 S
@table
,@ColumnA
(用于设置新值),@GeoPath
(用于签入)
动态scipt的条件)如下所示:
@Table = 'Table1'
@ColumnA = 'A'
@GeoPath = 0xE610000001040500000061574D5E31433140000000003EAF52405E3B0D825B92314000000000AACA52407BEECBC0FB263140000000001
SET @query = 'Update ['+@Table+']
SET ColumnA = '''+@ColumnA+'''
WHERE CONVERT(Geometry,'+CAST(@GeoPath AS varchar(MAX))+').STIntersects(geometry::Point(Latitude,Longitude, 4326))= 1';
PRINT(@query);
EXECUTE(@query);
但是得到错误:
将数据类型varchar转换为几何体时出错
使用
地理
或几何体
时,您需要指定更多信息,而不仅仅是从一种类型转换为另一种类型
例如,这是将多边形二进制数据转换回地理类型
DECLARE @g geography;
SET @g = geography::STPolyFromWKB(0x01030000000100000005000000F4FDD478E9965EC0DD24068195D3474083C0CAA145965EC0508D976E12D3474083C0CAA145965EC04E62105839D44740F4FDD478E9965EC04E62105839D44740F4FDD478E9965EC0DD24068195D34740, 4326);
SELECT @g
这里是相同的例子,但这次是从文本
DECLARE @g_text geography;
SET @g_text = geography::STPolyFromText('POLYGON ((-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))', 4326);
SELECT @g_text
我不确定你有什么类型的二进制数据来转换它。只要确保您使用的是正确的转换方法
阅读更多关于你的变量是什么?@Paddy,好的!让我来编辑。@Paddy,请查看编辑后的帖子。@jarlh,谢谢您的编辑。你能帮我吗?