Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SSI从一个csv文件中提取不同的数据表_Csv_Ssis_Extract - Fatal编程技术网

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文件
  • 读取不同的文件类型
  • 公元1年。放置
    数据流
    以读取输入的csv文件

    • 仅以字符串类型的一列(
      Column1
      )开始
      flatfilesource
      。我们这样做只是为了得到你提到的行类型

    • 使用
      Transformation Component
      将该行拆分为多个部分。获取第一个值(您的类型标识符)并将其设置为名为
      TypeID
      的OutputBuffer(
      ResultBuffer
      )列:

    • 使用
      条件拆分
      检查类型:
      TypeID==0
      (其他类似)。在此之后,只需一个普通的
      平面文件目标
      ,即可将您读取的一列保存到文件名
      TypeID\u File.txt
    公元2年。
    创建一个
    数据流
    ,其中包含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];
    }