【问题标题】:Should delimited text file have a delimiter after the final column?分隔的文本文件是否应该在最后一列之后有分隔符?
【发布时间】:2015-08-11 18:43:16
【问题描述】:

分隔文本文件是否应在最后一列右侧包含分隔符? 想象一个用管道分隔的文件,它包含 3 列:Column1、Column2、Column3。

哪个是“正确的”,或者您期望哪个?

第 1 列|第 2 列|第 3 列|

值1|值2|值3|

或者

第 1 列|第 2 列|第 3 列

值1|值2|值3

(对于中间的额外行空间感到抱歉 - 堆栈溢出拒绝识别我的换行符 - wtf)。 我试图让 SSIS 识别文件以获取平面文件连接,并且应该有 39 列。该人在最后一列的值之后向我提供了一个没有分隔符的文件。 SSIS 无法正确识别它,直到我在最后一列值之后添加管道符号 - 但也许还有其他因素或原因?

【问题讨论】:

  • 第二个是我所期望的,因为分隔符提供了两个实体之间的分隔。尾随分隔符不是必需的,因为回车/换行/回车 + 换行通常用作行分隔符。如果文件与Column1|Column2|Column3|Value1|Value2|Value3| 完全相同(无换行符),我只会期望方案 1

标签: ssis csv


【解决方案1】:

可能您的平面文件连接属性有误,无法正确识别 EOL。

Flat File Connection manager Editor 中进入Advanced 选项卡。您应该找到一些列(如您所说的 39)。每个人都应该有相同的ColumnDelimiter,除了最后一个,而不是像Column1|Column2|Column3(这是最常见的)这样的情况应该是{CR}{LF}

尝试使用不同的分隔符,也许文件的回车符与您期望的不同(无论如何应该是{CR}{LF}{CR}{LF} 之间的一个)

【讨论】:

  • 您的回答提示我检查回车符(我没有真正检查它是否存在)。果然,它不存在。我会回过头来通知用户,所有数据线必须以 ascii 十进制 10 或 13 结尾。谢谢!
猜你喜欢
  • 2012-12-21
  • 1970-01-01
  • 1970-01-01
  • 2021-04-26
  • 2012-08-01
  • 1970-01-01
  • 2012-11-23
  • 2020-09-13
相关资源
最近更新 更多