如何在SSIS包中获取和存储来自不同源的数据

问题描述 投票:1回答:1

我有一个XML源文件,我必须从中获取“文件名”和一个表,我必须从中获取文件状态。一旦我得到两个值,我需要将两个数据保存在表中。

XML:

<File>
<File_Info>
    <File_Name>Test1</File_Name>
    <File_Path>BLABLABLA</File_Path>
    <File_Ext>.xml</File_Ext>
</File_Info>
</File>

表:

FileStatusID  -  Status
1             -  Created
2             -  Processed

这两个来源之间没有关系。

如何将XML源和FileStatusID中的File_Name从表存储到表中?

文件表:

FileID - FileName - FileStatusID
1      - Test     - 1
2      - Test2    - 1 

这是我的包裹

enter image description here

sql-server merge ssis etl sql-server-data-tools
1个回答
2
投票

如果您希望根据顺序合并两个数据源:第一行XML与第一行OLEDB,您只需在每个数据源之后添加一个脚本组件转换。

在每个脚本组件转换上,添加类型为DT_I4(整数)的输出列(假设它的名称为AutoNumCol

编写以下脚本来生成Autonumber,(我使用的是VB.Net):

Public Class ScriptMain
    Inherits UserComponent

    Private intID as integer = 0

    Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)

        intID += 1

        Row.AutoNumCol = intID
    End Sub

End Class

并在Merge Join中使用这两列

*注意确保您已将脚本输出标记为IsSorted,并将AutoNumCol SortKeyPosition更改为1

enter image description here

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.