我有一个CSV文件,其中信息分散在两行中
第1行包含姓名和年龄
第2行包含地址,城市,工资,职业等详细信息
我想合并两行以将其插入数据库中。
CSV文件:
Raju, 42
12345 west andheri,Mumbai, 100000, service
在SQL Server中,我可以使用游标进行操作。但是我必须在SSIS中做。
答案 0 :(得分:1)
对于类似的情况,我将每一行读为一列,并使用脚本组件来修复结构。您可以按照我对以下问题的回答。它包含分步指南:
答案 1 :(得分:0)
在这种情况下,我喜欢使用脚本组件来存储来自不同行的数据。
将文件作为单列CSV读取到Column1中。
添加脚本组件并添加一个名为CorrectedOutput的新输出,并定义两行中的所有列。另外,将Column1标记为已读。
在行处理之外创建2个变量以“保留”第一行
string name = string.Empty;
string Age = string.Empty;
使用拆分确定第1行或第2行
string[] str = Row.Column1.Split(',');
使用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个新行。