使用多个主键拆分大文本文件

时间:2019-11-04 17:04:17

标签: ssis

我有一个大的(ish)文本文件,每天都会收到c130m记录,所有记录都由管道分隔并具有多个行结构。

我需要将这些文件导入到本地SQL Server中,这要归功于这里的人们,我了解如何将行拆分为不同的列,但是我现在正忙于主键/外键。

文件与以下类似

AAA |值1 |值2 |值3
   SRH | ValueA | ValueB
      BPI | Value2 | Value3
      BPI | Value7 | Value9
   SRH | Value1 | Value2
      BPI | Value2 | Value3
      BPI | Value7 | Value9

我目前正在将文件加载到具有RowID(以保持文件顺序)和单个VVARCHAR(4000)列作为行数据的Recordset目标中。

然后我正在使用一个Foreach循环容器,其中包含一个数据流任务,然后是一个记录源的脚本组件。

然后我执行此操作并执行条件拆分,然后根据第一行数据项(AAA,SRH等)将其写到相关表中

计划是添加一个递增的ID以实现所需的结果。

用作源的脚本组件的代码是

    Dim varDataLine As String

    varDataLine = Variables.DataLine.ToString()

    ScriptOutputBuffer.AddRow()
    ScriptOutputBuffer.DataLineOutput = varDataLine

我需要根据前三个字符拆分输入文件,然后添加一个“主键”以将它们链接在一起。

期望的输出将如下所示,其中的“主键”显示在()

(1)AAA | Value1 | Value2 | Value3
   (2)SRH | ValueA | ValueB
      (2)BPI | Value2 | Value3
      (2)BPI | Value7 | Value9
   (3)SRH | Value1 | Value2
      (3)BPI | Value2 | Value3
      (3)BPI | Value7 | Value9

在上面的示例中,BPI记录将继承以前的SRH“主键”,这就是为什么保持文件顺序很重要的原因。

然后将每行输出到其相关表(AAA,SRH ...)

0 个答案:

没有答案