我在SSIS中使用XML源将XML文件导入SQL Server数据库。
我没有使用XML文件中的所有细节元素。但是我希望保存原始元素以及所有细节以防将来需要它们。
让我们说xml:
<root>
<row>
<desc>Some row</desc>
<child>
<hi>hi</hi>
<ho>ho</ho>
</child>
</row>
<row>
<desc>Some row2</desc>
<child>
<hi>hi2</hi>
<ho>ho2</ho>
</child>
</row>
</root>
结构中的预期结果:
Create Table ParentTable
(
Id int primary key identity,
[desc] nvarchar(50),
xmlElement xml
)
如何使用SSIS将原始XML元素(在本例中为元素“row”)加载到数据库中?
答案 0 :(得分:1)
我是SSIS的新手,但在互联网上找到了解决方案(可能不是最好的但是有效)。
所以来了。
User::FileName = "some.xml"
和User::SourceCatalog = "C:\xmlCatalog\"
User::FileName,User::SourceCatalog
。
在脚本标签中按编辑脚本... 。在CreateNewOutputRows方法的打开窗口中粘贴此代码:
XmlDocument xDoc = new XmlDocument();
string xml_filepath = Variables.SourceCatalog + Variables.FileName;
xDoc.Load(xml_filepath);
foreach (XmlNode xNode in xDoc.SelectNodes("//row"))
{
this.XMLResultOutputBuffer.AddRow();
this.XMLResultOutputBuffer.xmlData = xNode.OuterXml.ToString();
this.XMLResultOutputBuffer.xmlDesc = xNode.SelectSingleNode("./desc").InnerText;//xNode.ChildNodes[0].InnerText;
}
不要忘记添加using System.Xml;
添加了 OLE DB目标组件,将脚本组件链接到该组件,选定的表格,映射列和THATS IT。