0

情况:来自平面文件源的制表符分隔的行缺少行末尾的列。在平面文件连接管理器中,行由 分隔{CR}{LF},最后一列也由 分隔{CR}{LF}。所有其他列由 分隔Tab {t}。SSIS 正在导入该行。

例子:

Column_1 {t} Column_2 {t} Column_3 {t} Column_4{CR}{LF}

123 {t} 123 {t} 123 {t} 123{CR}{LF}

123 {t} 123{CR}{LF}

123 {t} 123 {t} 123{ {t} 123{CR}{LF}

123 {t} 123{t} {t} {CR}{LF}

123 {t} 123 {t} 123 {t} 123{CR}{LF}

问题: 没有用制表符分隔剩余列的部分行(请参见上面的第 2 行)将下一行视为当前行的一部分,而包含空白的制表符分隔列的行(请参见上面的第 4 行)确实不是。

期望的输出:需要一个错误来指示部分行。

检查文件中间部分行的最佳方法是什么?

4

1 回答 1

1

如果解析时缺少列,则 pre-denali (2012) SSIS 似乎会失败。2012 年通过始终检查行分隔符来解决此问题。

请参阅:http: //blogs.msdn.com/b/mattm/archive/2011/07/17/flat-file-source-changes-in-denali.aspx

在 2012 年之前的 SSIS 中解决此问题的方法包括编写自己的解析器(这是我们选择做的)、在解析数据之前转换数据,或仅使用平面文件源来解析行。

于 2012-11-13T17:58:39.360 回答