情况:与平面文件源分隔的制表符行在行末尾缺少列。在平面文件连接管理器中,行由{CR}{LF}
分隔,最后一列也由{CR}{LF}
分隔。所有其他列均由Tab {t}
分隔。 SSIS正在导入行。
例:
Column_1 {t}
Column_2 {t}
Column_3 {t}
Column_4 {CR}{LF}
123文字代码123文字代码123文字代码123文字代码
123 {t}
123 {t}
123 {t}
123 {CR}{LF}
123 {{t}
123 {CR}{LF}
123 {t}
123 {t}
{t}
{CR}{LF}
123文字代码123文字代码123文字代码123文字代码
问题:没有用制表符分隔剩余列的部分行(请参阅上面的第2行)将下一行视为当前行的一部分,而包含用制表符分隔的列的行则为空白(请参阅上面的第4行) ) 才不是。
所需的输出:需要错误以表示部分行。
检查文件中间的部分行的最佳方法是什么?
最佳答案
似乎如果解析时缺少列,则denali之前的(2012)SSIS会失败。通过始终检查行分隔符可以在2012年解决此问题。
另请:http://blogs.msdn.com/b/mattm/archive/2011/07/17/flat-file-source-changes-in-denali.aspx
在2012年之前的SSIS中解决此问题的方法包括编写自己的解析器(这是我们选择执行的操作),在解析数据之前转换数据,或仅使用平面文件源解析行。
关于error-handling - 在SSIS中检测部分行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13365443/