在 Transact-SQL 中使用 OLE 自动化对象编写 XML
Compose XML using OLE Automation Objects in Transact-SQL
我尝试在 MS SQL 服务器中使用 OLE 自动化对象编写 XML-文档。
DECLARE @xml_out INT
DECLARE @xml_string VARCHAR(8000)
DECLARE @root_elem INT
DECLARE @parent_child_node INT
DECLARE @child_elem INT
DECLARE @append_child INT
EXECUTE sp_OACreate 'MSXML2.DOMDocument.6.0',@xml_out OUTPUT
EXECUTE sp_OAMethod @xml_out,'createElement',@root_elem OUTPUT,'root'
EXECUTE sp_OAMethod @xml_out,'documentElement.appendChild',@parent_child_node OUTPUT,@root_elem
EXEC sp_OAGetErrorInfo @parent_child_node
EXECUTE sp_OAMethod @xml_out,'createElement',@child_elem OUTPUT,'child'
EXECUTE sp_OAMethod @root_elem,'appendChild',@append_child OUTPUT,@child_elem
set @xml_string = ''
EXECUTE sp_OAGetProperty @xml_out,'xml',@xml_string OUTPUT
print 'result XML:'
print @xml_string
EXECUTE sp_OADestroy @xml_out
但是当我尝试将 child 附加到我的文档时出现错误:
所以我的文件不会被组成。
接下来的预期结果是:
<root>
<child/>
</root>
谁能告诉我怎么了?
您可以直接在 XML 文档上调用 appendChild()
方法,而无需先访问 documentElement
属性 :
EXECUTE sp_OAMethod @xml_out,'appendChild',@parent_child_node OUTPUT,@root_elem
我尝试在 MS SQL 服务器中使用 OLE 自动化对象编写 XML-文档。
DECLARE @xml_out INT
DECLARE @xml_string VARCHAR(8000)
DECLARE @root_elem INT
DECLARE @parent_child_node INT
DECLARE @child_elem INT
DECLARE @append_child INT
EXECUTE sp_OACreate 'MSXML2.DOMDocument.6.0',@xml_out OUTPUT
EXECUTE sp_OAMethod @xml_out,'createElement',@root_elem OUTPUT,'root'
EXECUTE sp_OAMethod @xml_out,'documentElement.appendChild',@parent_child_node OUTPUT,@root_elem
EXEC sp_OAGetErrorInfo @parent_child_node
EXECUTE sp_OAMethod @xml_out,'createElement',@child_elem OUTPUT,'child'
EXECUTE sp_OAMethod @root_elem,'appendChild',@append_child OUTPUT,@child_elem
set @xml_string = ''
EXECUTE sp_OAGetProperty @xml_out,'xml',@xml_string OUTPUT
print 'result XML:'
print @xml_string
EXECUTE sp_OADestroy @xml_out
但是当我尝试将 child 附加到我的文档时出现错误:
所以我的文件不会被组成。 接下来的预期结果是:
<root>
<child/>
</root>
谁能告诉我怎么了?
您可以直接在 XML 文档上调用 appendChild()
方法,而无需先访问 documentElement
属性 :
EXECUTE sp_OAMethod @xml_out,'appendChild',@parent_child_node OUTPUT,@root_elem