我正在嘗試設置SQL作業以將XML文件導入到SQL Server表中。使用OPENXML,我似乎無法從文件中選擇我需要的特定數據。這是我的代碼和XML數據。我試圖選擇Facility和Entity_Code,但是當我運行代碼時,這些字段顯示爲空白。OpenXML將XML文件導入SQL服務器表
我想將這些字段轉移到自己的表中。
在此先感謝。
Declare @x xml
select @x=p
from OPENROWSET(Bulk'\\vmirsdh01\fast_data\Small.xml', SINGLE_BLOB) as T(P)
Select @x
Declare @hdoc int
EXEC sp_xml_preparedocument @hdoc OUTPUT, @x
Select *
FROM OPENXML (@hdoc,'/Report/Tablix1/Details_Collection/Details',0)
with(Facility nvarchar(255) '@Facility',
Entity_Code nvarchar(255) '@Entity_Code')
exec sp_xml_removedocument @hdoc
「************ XML
<?xml version="1.0" encoding="utf-8"?><Report xsi:schemaLocation="T-Report https://csre.xxx.com%2FDevelopment%20Folder%2FIand%2FT-Report&rs%3ACommand=Render&rs%3AFormat=XML&rs%3ASessionID=4keav12uayp33ve3uczpgmfr&rc %3ASchema=True" Name="T-Report" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="T_Report">
<Tablix1>
<Details_Collection><Details Facility="Fxx" Tool_Type="Base Build" Entity_Code="EquiP1" /></Details_Collection>
</Tablix1>
</Report>
這裏是一個可執行版本
Declare @x xml
select @x='<?xml version="1.0" encoding="utf-8"?><Report xsi:schemaLocation="T-Report https://csre.xxx.com%2FDevelopment%20Folder%2FIand%2FT-Report&rs%3ACommand=Render&rs%3AFormat=XML&rs%3ASessionID=4keav12uayp33ve3uczpgmfr&rc %3ASchema=True" Name="T-Report" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="T_Report">
<Tablix1>
<Details_Collection><Details Facility="Fxx" Tool_Type="Base Build" Entity_Code="EquiP1" /></Details_Collection>
</Tablix1>
</Report>'
Declare @hdoc int
EXEC sp_xml_preparedocument @hdoc OUTPUT, @x
Select *
FROM OPENXML (@hdoc,'/Report/Tablix1/Details_Collection/Details',0)
with(Facility nvarchar(255) '@Facility',
Entity_Code nvarchar(255) '@Entity_Code')
exec sp_xml_removedocument @hdoc
好斑。這是一個錯誤,但這仍然不能解決問題。我在帖子中糾正了它。謝謝 – user1781272 2014-10-31 12:42:24