2012-03-19 23 views
2

我試圖從包含地理類型的表中返回XML。
SQL查詢:SQL Query將地理類型返回爲XML

SELECT * 
From Events 
ORDER BY HydrantId ASC 
FOR XML RAW ('Event'), ROOT ('Events'), ELEMENTS XSINIL; 

,我發現了以下錯誤:

FOR XML does not support CLR types - 
cast CLR types explicitly into one of the supported types in FOR XML queries. 

我怎樣才能施放此地理列的東西是可讀?
謝謝。

回答

3
SELECT Column1, Column2, Column3, cast(GeographyColumn as varchar(max)) 
From Events 
ORDER BY HydrantId ASC 
FOR XML RAW ('Event'), ROOT ('Events'), ELEMENTS XSINIL; 

GeographyColumn的值將是在POINT (-77.010996 38.890358)格式。

+0

謝謝。我如何將新的POINT插入到他自己的XML子元素中?我收到以下錯誤:'System.Data.SqlServer.TruncationException:嘗試將大小爲64字節的返回值或輸出參數轉換爲具有60字節的較小大小限制的T-SQL類型。' – toy4fun 2012-03-19 18:50:25

+0

我已解決錯誤通過使用'cast(GeographyColumn as nvarchar(MAX))'。 – toy4fun 2012-03-19 18:57:16

+0

Eeks我忘了獲取數據長度。固定! – 2012-03-19 18:59:29