簡體   English   中英

SQL Server 2008 R2:將數據類型varchar轉換為幾何

[英]SQL Server 2008 R2: Converting data type varchar to geometry

我正在使用“幾何路徑條件”用一些值更新表。

在這里,在下面的例子:我傳遞表的名稱作為@Table@ColumnA (用於設置新的值), @GeoPath (在狀態檢查),用於動態素文字,如下所示:

@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轉換為幾何體時出錯。

在使用GEOGRAPHYGEOMETRY您需要指定更多信息,而不僅僅是從一種類型轉換為另一種類型。

例如,這是將多邊形二進制數據轉換回地理類型。

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

我不確定要轉換哪種二進制數據類型。 只要確保您使用的轉換方法正確即可。

了解更多有關geography::STPolyFromText

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM