我有一个大的(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 ...)