我有一个xml文档,我将使用SSIS 2005解析为SQL表。 但是我遇到了一些麻烦,因为它是多层次的并且在每个帖子中都包含集合(?)。 我找到了一个解决方案,使用SSIS中的Merge Join将多级XML连接到一行,但我无法找到一种方法来处理多个< adress>将它们放到一行的元素。
希望有人可以帮我解决这个问题。
编辑:
所以我希望输出在一行中包含以下数据。
Personnummer, fornamn, efternamn, kon, epost, avdelning, foretagsnr, anstnr,
arbetsledare, signatur, pkontering3, adress.hemadress.gatuadress,
adress.hemadress.adress2, adress.hemadress.co_adress, adress.hemadress.postnr,
adress.hemadress.postort, adress.hemadress.land, adress.mobiltelefon.telefonnr,
adress.hemtelefon.telefonnr
希望你理解我的adress.hemadress / mobiltelefon / hemtelefon表示法。 < befattningar>元素未使用atm,如果它将与< adresser>使用相同的解决方案可能会奏效。 :)
这是xml结构的一个例子,你可以看到有三个< adress> < adresser>中的元素元素,我希望它们都输出到一行。如果可以忽略< adress>中的一些元素基于< adresstyp>中的文本的元素这个元素会很棒,但我想我可以在没有这个功能的情况下进行管理。
<PersonCollection>
<Person>
<Personnummer>190001010101</Personnummer>
<Fornamn>firstname</Fornamn>
<Efternamn>lastname</Efternamn>
<Kon>K</Kon>
<Epost>mail@mail.com</Epost>
<Avdelning>B</Avdelning>
<Foretagsnr>1</Foretagsnr>
<Anstnr>1</Anstnr>
<Arbetsledare>firstname lastname</Arbetsledare>
<Signatur>X</Signatur>
<PKontering3>XXXX</PKontering3>
<Befattningar>
<Befattning>
<Status>X</Status>
<Namn>Position</Namn>
</Befattning>
</Befattningar>
<Adresser>
<Adress>
<Adresstyp>Hemadress</Adresstyp>
<Telefonnr />
<Gatuadress>Streetadress 1</Gatuadress>
<Adress2 />
<Co_Adress />
<Postnr>111 22</Postnr>
<Postort>City</Postort>
<Land>Country</Land>
</Adress>
<Adress>
<Adresstyp>Mobiltelefon</Adresstyp>
<Telefonnr>010-010 01 01</Telefonnr>
<Gatuadress />
<Adress2 />
<Co_Adress />
<Postnr />
<Postort />
<Land />
</Adress>
<Adress>
<Adresstyp>Hemtelefon</Adresstyp>
<Telefonnr>01-01 01 01</Telefonnr>
<Gatuadress />
<Adress2 />
<Co_Adress />
<Postnr />
<Postort />
<Land />
</Adress>
</Adresser>
</Person>
</PersonCollection>
答案 0 :(得分:0)
我通过在我的SSIS中使用三个SQL Server目标并指向&lt; person&gt;的输出来解决这个问题。到一张桌子,&lt; adress&gt;到一个表然后&lt; adresser&gt; (只包含personid和adresserid)到一张桌子,用于与地址和人员表匹配。 然后我在SQL Server中使用了一个视图来组合我想要的信息并使用SSIS生成的personid和adresserid(是否为我的xml生成了ID的SSIS?)。
但是我仍然很好奇它是否可以在SSIS中解决。