2010-03-30 59 views
0

我有一个xml文件,我必须使用ssis pacakge数据流写入数据库表的内容。SSIS(sql server集成服务)xml数据流

我正在使用xml源和oledb目的地。 (事件,产品,报价,表单)等 但我需要在一个数据行中写入所有数据在数据库中。

但我不知道如何使用这个多输出,并为一个事件做单行。

我可以阅读大量关于此主题的文章,但无法做出决定。做这件事的正确方法是什么。

1)xml source? (如果我用这个,我怎么合并多个输出)

2)或者一个脚本任务使用xml对象读取和写入数据库。

还是什么新东西?

请给我提供一些解决方案。其紧急。

XML样本文件

<root> <event id="1000"><sponsor id="126" type="1">ABc.</sponsor><start_date>2009-06-07</start_date> <Some_date>2010-04-30</some_date><valid_region id="8">region</valid_region> <limit>test</limit> <contact_info>1 contact</contact_info> <offer id="10"> <offer_text>offertest</offer_text> <product id="11"><name>product1</name> </product><product id="12"><name>product1</name> </product></offer><form id="34"> <form_size>187</claim_form_size> </form></event</root> 

感谢

SNA

+0

你的目标表是什么样的? – grapefruitmoon 2010-03-30 14:48:00

回答

0

完全不同的方法是将XML字符串写入到一个XML数据类型列的表。然后,您可以使用xml_preparedocument和OPENXML来查询数据库中的XML。我经常使用它来下载XML文件,并只提取我想要的当前报告的节点。这使我可以灵活地在未来需要时抽取更多节点,而无需现在就做。它还可以轻松拆分ETL,以便使用适当的数据加载不同的目标。例如,如果XML的一部分基本上是一个头,而XML的其余部分基本上是细节事务,则可以编写一个存储过程,将头部提取到一个表,将细节提取到另一个表。让我知道如果您想要了解如何做到这一点的更多细节,我可以为您提供示例代码。

相关问题