【发布时间】:2015-10-03 18:11:03
【问题描述】:
我在存储过程中使用 openxml 函数时遇到问题,如您所见,select 语句返回空行。我怀疑 sql 无法读取 xml 目录。这是我第一次使用此功能,所以我不确定这是使用它的正确方法。顺便说一句,我使用的是 sql server 2008 r2。这是重现问题的代码。
Declare @hddoc int
Declare @Doc xml
SET @Doc = ' <DataSet>
<tblEmp>
<name>Nazri</name>
<designation>Developer</designation>
</tblEmp>
<tblEmp>
<name>Jibin</name>
<designation>System Analyst</designation>
</tblEmp>
</DataSet>'
EXEC SP_XML_PREPAREDOCUMENT @hddoc OUTPUT, @Doc
SELECT @hddoc
DECLARE @iDoc INT
SET @iDoc = 1
SELECT *
FROM OPENXML(@iDoc,'/Dataset/tblEmp')
WITH ( name varchar(50) '@name',
designation varchar(50) '@designation'
)
【问题讨论】:
-
我知道这只是一个简单的例子,但是当你准备好代码生产时不要忘记调用
sp_xml_removedocument来释放文档句柄,否则这会导致资源泄漏
标签: stored-procedures sql-server-2008-r2 sql-server-openxml