2012-03-19 29 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