我的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不支持命令操作,有没有什么解决思路啊?请大家指导一下~
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')
可能是我的版本没有升级的缘故吧,我的Sqlserver2008不支持XML数据类型,害的我是各种调试~
可以用函数OPENXML 把xml类型转换成sql结果集