SSI从一个csv文件中提取不同的数据表
我无法理解如何从该文件中提取数据:SSI从一个csv文件中提取不同的数据表,csv,ssis,extract,Csv,Ssis,Extract,我无法理解如何从该文件中提取数据: 0|V1102299|USA05639|A&P POLYCHEM|20110214|49896.0000 |0.0000 1|V1102299|00001|USA05639|A&P POLYCHEM|20110222|DOA100||Di Octyl Adipate 210KG/DR|16800.000 |KG|2970.0000 2|V1102299|00001|00|20130617|5000010209||16800.000
0|V1102299|USA05639|A&P POLYCHEM|20110214|49896.0000 |0.0000
1|V1102299|00001|USA05639|A&P POLYCHEM|20110222|DOA100||Di Octyl Adipate 210KG/DR|16800.000 |KG|2970.0000
2|V1102299|00001|00|20130617|5000010209||16800.000 ||49896.0000
4|USA05639|A&P POLYCHEM|FRB1|Freight (Value)|4100.000000000 |USD
4|USA05639|A&P POLYCHEM|ZL02|Fuel (value)|0.000000000 |USD
4|USA05639|A&P POLYCHEM|ZL01|Temp Control (value)|0.000000000 |USD
4|USA05639|A&P POLYCHEM|ZOB1|Customs (Value)|0.000000000 |USD
4|USA05639|A&P POLYCHEM|ZL03|Haz. Mat. (value)|0.000000000 |USD
其中第一列表示行类型:
是根元素(必需)0
是子(可选,多个)1
是子(可选,多个)2
是子(可选,多个)3
是子(可选,多个)4
每行都有自己的列计数和列名、类型集
注意:我无法控制如何接收此csv文件。我个人知道这是一种糟糕的做法。这就是我们处理此类问题的方式:一般来说,您必须将流程分为几个部分:
数据流
以读取输入的csv文件
- 仅以字符串类型的一列(
)开始Column1
。我们这样做只是为了得到你提到的行类型flatfilesource
- 使用
将该行拆分为多个部分。获取第一个值(您的类型标识符)并将其设置为名为Transformation Component
的OutputBuffer(TypeID
)列:ResultBuffer
- 使用
检查类型:条件拆分
(其他类似)。在此之后,只需一个普通的TypeID==0
,即可将您读取的一列保存到文件名平面文件目标
TypeID\u File.txt
创建一个
数据流
,其中包含5个单独的容器,分别从每个创建的文件中读取,并正确设置列名和类型。谢谢,我现在就来试试。
public override void Input0_ProcessInputRow(Input0Buffer Row)
{
var arr = Row.Column1.Split('|'); // Splitting the rows of Names column
ResultBuffer.AddRow();
ResultBuffer.TypeID = arr[0];
}