1

源查询在一个变量中返回我需要的 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>
4

1 回答 1

1

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

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

Foreach 循环容器

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

就像我说的,这是理论上的——可能有一些我没有想到的问题,但我会在接下来的 24 小时左右返回一个工作原型(除非其他人提供更好的答案)。

于 2012-10-12T00:33:55.117 回答