无法读取单元格值中带双引号的CSV文件

时间:2016-03-16 10:48:41

标签: csv ssis ssis-2008

我正在尝试使用这种行读取CSV文件:

“A text”;“Another text”;“带有”“引号”“”的文字

在我的Flat File连接中,我将Text限定符填充为“。 当我点击预览按钮时,线条显示正确:带有“”引号“”的文字(不应该只显示一个双引号btw?)

但是一旦我尝试执行该包,就会发生错误,指出无法找到列分隔符:

[来源du fichier plat [1313]] Erreur *:«*Lesséparateurdecolonne pour la colonne« COL3 »est introuvable。

如果我在单元格值中删除那些双引号,它可以正常工作。

有没有办法让SSIS读取那些带双引号的单元?

对于相同的数据,您可以看到2008年与2012年将如何预览数据。观察Col2要么做了,要么没有逃避双引号(带引号的文本vs带有“引号”的文本)

enter image description here

使用2008版本的结果是它将失败并显示以下错误消息

  

找不到“Col2”列的列分隔符。

     

在数据行1上处理文件“c:\ ssisdata \ so \ input \ so_36033443.txt”时发生错误。

使用Biml重现问题

<Biml xmlns="http://schemas.varigence.com/biml.xsd">
  <Connections>
    <FlatFileConnection
      FilePath="c:\ssisdata\so\input\so_36033443.txt"
      FileFormat="FFF_36033443"
      Name="FFSRC" />
  </Connections>
  <FileFormats>
    <FlatFileFormat 
      Name="FFF_36033443"
      IsUnicode="false"
      HeaderRowDelimiter=";"
      CodePage="1252"
      TextQualifer="&quot;"
      >
      <Columns>
        <Column Name="Col0" DataType="AnsiString" Length="10" Delimiter=";"  CodePage="1252"/>
        <Column Name="Col1" DataType="AnsiString" Length="20" Delimiter=";"  CodePage="1252"/>
        <Column Name="Col2" DataType="AnsiString" Length="20" Delimiter="CRLF"  CodePage="1252"/>
      </Columns>
    </FlatFileFormat>
  </FileFormats>
  <Packages>
    <Package Name="so_36033443">
      <Tasks>
        <Dataflow Name="DFT Demo Delimiter">
          <Transformations>
            <FlatFileSource 
              ConnectionName="FFSRC" 
              Name="FFSRC so_36033443" />
            <DerivedColumns Name="DER Placeholder" />
          </Transformations>
        </Dataflow>
      </Tasks>
    </Package>
  </Packages>
</Biml>

0 个答案:

没有答案