如何将SQL Server 2008 XML结果拆分为SSIS中的单个文件

时间:2012-10-11 20:05:24

标签: xml sql-server-2008 ssis

源查询在一个变量中返回我需要的XML。在SSIS中,如何获取OLE适配器返回的变量并将其在每个顶级叶片上拆分为一个文件。对于我的样本数据,我想为提交类型标记启动一个新文件,但文件名将是日期和患者ID。这是每个病人的新文件。

示例数据。

<submission type="HOSPITAL" data="CLINICAL" version="1.0" action-code="ADD">
    <provider>
        <provider-id>120129</provider-id>
        <patient>
            <birthdate>07-26-1925</birthdate>
            <sex>F</sex>
            <race>1</race>
            <ethnic>N</ethnic>
            <postal-code>32142</postal-code>
            <episode-of-care measure-set="PN">
                <admit-date>09-13-1987</admit-date>
                <discharge-date>09-14-1988</discharge-date>
                <pthic/>
                <patient-id>7228</patient-id>
                <detail answer-code="3" row-number="0" question-cd="ANOTHERINF"/>
                <detail answer-code="Y" row-number="0" question-cd="ANTIALLERGY"/>
            </episode-of-care>
        </patient>
    </provider>
</submission>
<submission type="HOSPITAL" data="CLINICAL" version="1.0" action-code="ADD">
    <provider>
        <provider-id>168729</provider-id>
        <patient>
            <birthdate>07-26-1835</birthdate>
            <sex>F</sex>
            <race>1</race>
            <ethnic>N</ethnic>
            <postal-code>39142</postal-code>
            <episode-of-care measure-set="PN">
                <admit-date>09-13-1986</admit-date>
                <discharge-date>09-14-1987</discharge-date>
                <pthic/>
                <patient-id>888</patient-id>
                <detail answer-code="3" row-number="0" question-cd="ANOTHERINF"/>
                <detail answer-code="Y" row-number="0" question-cd="ANTIALLERGY"/>
            </episode-of-care>
        </patient>
    </provider>
</submission>

1 个答案:

答案 0 :(得分:1)

警告:此时此答案全是theoretical。今晚我会尝试自己做,因为我发现这个问题很有趣,而且当我们自己的项目可能需要做类似的事情时,我可以看到未来的一点。另外,我喜欢学习SSIS的新方法。

无论如何,这是我的理论。

Foreach循环容器

  • 将集合的枚举器更改为Foreach NodeList枚举器
  • 将文档源更改为XML(以变量形式或查询结果或其他形式)
  • 将OuterXPathString更改为// <提交
  • 让循环通过数据流
  • 将xml的内部内容传递给平面文件目标
  • 还需要沿途Sumission提取元素属性

就像我说的那样,这是理论上的 - 可能会有一些我没有想到的问题,但我会在接下来的24小时左右用一个正常工作的原型回来(除非别人有更好的答案)