首页 新闻 搜索 专区 学院

sqlserver 2008 xml 问题

0
悬赏园豆:20 [已关闭问题] 关闭于 2012-10-16 10:41

我的sqlserver2008无法定义XML数据类型,我想把一个xml(格式如下)

<xml>

<row name="aaa" sex="man" age="16"/>

<row name="bbb" sex="woman" age="18"/>

</xml>

在数据库中解析成一个表(格式如下)

     name      sex      age

---------------------------

    aaa          man      16

    bbb         womn   18

请大家指导一下,谢谢!

问题补充:

分享一下,这是我刚在的解析方法:

DECLARE @idoc int
DECLARE @doc varchar(max)
SET @doc='
<xml>
<product productCode="1111" inprice="1"  saleprice="2"  costprice="3"/>
<product productCode="2222"  inprice="2"  saleprice="3"  costprice="4"/>
<product productCode="3333"  inprice="3"  saleprice="4"  costprice="5"/>
<product productCode="4444"  inprice="4"  saleprice="5"  costprice="6"/>
</xml>
'
PRINT len(@doc)
EXEC sp_xml_preparedocument @idoc OUTPUT, @doc
SELECT    *
FROM       OPENXML (@idoc, '/xml/product',3)
           WITH (productCode  varchar(10) './@productCode',
           inprice  money './@inprice',
           saleprice  money './@saleprice',
           costprice  money './@costprice')
为什么我的sqlserver 2008不能定义xml数据类型,对于这种操作,varchar(8000)的长度还是令人担忧的,text不支持命令操作,有没有什么解决思路啊?请大家指导一下~
 

老吉的园子的主页 老吉的园子 | 初学一级 | 园豆:193
提问于:2012-09-28 14:04
< >
分享
所有回答(4)
0

SQL 2008 执行XML类型的数据啊
楼主是用DECLARE @doc XML 就可以了。

DECLARE @idoc int
DECLARE @doc XML
--或者
DECLARE @doc ntext
SET @doc=' <xml> <product productCode="1111" inprice="1" saleprice="2" costprice="3"/> <product productCode="2222" inprice="2" saleprice="3" costprice="4"/> <product productCode="3333" inprice="3" saleprice="4" costprice="5"/> <product productCode="4444" inprice="4" saleprice="5" costprice="6"/> </xml> ' EXEC sp_xml_preparedocument @idoc OUTPUT, @doc SELECT * FROM OPENXML (@idoc, '/xml/product',3) WITH (productCode varchar(10) './@productCode', inprice money './@inprice', saleprice money './@saleprice', costprice money './@costprice')
acepro | 园豆:1218 (小虾三级) | 2012-09-28 15:22

可能是我的版本没有升级的缘故吧,我的Sqlserver2008不支持XML数据类型,害的我是各种调试~

支持(0) 反对(0) 老吉的园子 | 园豆:193 (初学一级) | 2012-09-28 16:55
0

可参考此文:

SQL对Xml字段的操作

itaozi | 园豆:1053 (小虾三级) | 2012-09-28 15:37

谢谢你的回答~

支持(0) 反对(0) 老吉的园子 | 园豆:193 (初学一级) | 2012-09-28 16:55
0

可以用函数OPENXML  把xml类型转换成sql结果集

┢┦偉 | 园豆:1240 (小虾三级) | 2012-09-29 10:41
0

                       

老吉的园子 | 园豆:193 (初学一级) | 2012-10-10 16:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册