[英]Error converting data type varchar to date in SQL Server 2008 R2
[英]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轉換為幾何體時出錯。
在使用GEOGRAPHY
或GEOMETRY
您需要指定更多信息,而不僅僅是從一種類型轉換為另一種類型。
例如,這是將多邊形二進制數據轉換回地理類型。
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
我不確定要轉換哪種二進制數據類型。 只要確保您使用的轉換方法正確即可。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.