【问题标题】:How to process XML files and update a table using SSIS package?如何使用 SSIS 包处理 XML 文件和更新表?
【发布时间】:2012-11-07 15:57:46
【问题描述】:

我有两个 XML 文件 accepted.XMLrejected.XML 具有相似的结构。这些文件的节点之一是 CLIENT_CLAIM_NUM

如果CLIENT_CLAIM_NUM 来自accepted.xml,我需要将相应状态的SQL Server 表更新为已接受。被拒绝的.xml 也是如此。我的接受.XML 具有以下结构:

Accepted.xml 文件布局:

 <CLAIM> 
      <CLIENT_CLAIM_NUM>1</CLIENT_CLAIM_NUM> 
      <Vendor_ASSIGNED_CLAIM_NUM>434772</Vendor_ASSIGNED_CLAIM_NUM> 
      <LASTNAME>#########</LASTNAME> 
      <Date>2012-01-06T00:00:00</Date>
 </CLAIM>

另外,我如何通过邮件发送每个文件中的索赔数量?

我使用了一个数据流任务和一个 XML 源来解析 XML。它将节点作为列提供,但我如何将其存储在变量中或使用这些列更新表。我不能使用临时表,因为我希望将所有这些都放在一个包中

【问题讨论】:

  • @Siva:感谢您的回复。我使用数据流任务和 XML 源来解析 XML。它将节点作为列提供,但我如何将其存储在变量中或使用这些列更新表。我不能使用暂存表,因为我希望将所有这些都放在一个包中

标签: sql-server ssis


【解决方案1】:

要更新表,请将输出数据流路径连接到 OLE DB 命令转换。构造一个参数化的更新语句,例如

UPDATE MyTable SET Claim_Num = ?

然后在“列映射”选项卡上映射您的列(在 OLE DB 命令转换)。您可以根据需要添加其他参数并将它们映射到其他列。

要将值存储在变量中,首先定义一个数据类型 = 对象的变量。然后将输出数据流路径连接到记录集目标,并指定该变量。请注意,这实际上是所有行和列的表。

要获取特定单元格,接下来将 Foreach 循环容器添加到您的控制流(现有数据流任务的下游)。将枚举器设置为 Foreach ADO 枚举器。将您的变量指定为 ADO 对象源变量。然后在变量映射选项卡上为输出中的每一列定义新变量。现在,Foreach 循环容器中的任何任务都将在循环的每次迭代中从每一行中获取分配了值的变量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多