在SSIS中合并2行CSV文件

时间:2019-06-05 08:00:22

标签: ssis

我有一个CSV文件,其中信息分散在两行中
第1行包含姓名和年龄
第2行包含地址,城市,工资,职业等详细信息

我想合并两行以将其插入数据库中。
CSV文件:

Raju, 42
12345 west andheri,Mumbai, 100000, service

在SQL Server中,我可以使用游标进行操作。但是我必须在SSIS中做。

2 个答案:

答案 0 :(得分:1)

对于类似的情况,我将每一行读为一列,并使用脚本组件来修复结构。您可以按照我对以下问题的回答。它包含分步指南:

答案 1 :(得分:0)

在这种情况下,我喜欢使用脚本组件来存储来自不同行的数据。

  1. 将文件作为单列CSV读取到Column1中。

  2. 添加脚本组件并添加一个名为CorrectedOutput的新输出,并定义两行中的所有列。另外,将Column1标记为已读。

  3. 在行处理之外创建2个变量以“保留”第一行

    string name = string.Empty;
    string Age = string.Empty;
    
  4. 使用拆分确定第1行或第2行

    string[] str = Row.Column1.Split(',');
    
  5. 使用if来确定第1或2行

    if(str.Length == 2)
    {
      name = str[0]; 
      age=str[1];}
    else
    {
         CorrectedOutputBuffer.AddRow();
         CorrectedOutputBuffer.Name = name; //This uses the stored value from prior row
         CorrectedOutputBuffer.Age = age; //This uses the stored value from prior row
         CorrectedOutputBuffer.Address = str[0];
         CorrectedOutputBuffer.City = str[1];
         CorrectedOutputBuffer.Salary = str[2];
         CorrectedOutputBuffer.Occupation = str[3];
    }
    

总体效果是这样的... 在第1行,您只需将数据保存在变量中 在第2行上,将数据写到1个新行。