忽略SSIS中平面文件源的最后/损坏记录

时间:2017-09-15 08:31:11

标签: ssis

我有以下csv文件:

col1, col2, col3
"r1", "r2", "r3"
"r11", "r22", "r33"
"totals","","",

后面跟着2个空白行。导入失败,因为在最后一个数据行的末尾有额外的逗号,并且很可能由于末尾有额外的空行而失败。

当我进入那一行时,我可以以某种方式跳过最后一行甚至更好地停止导入吗?它总是在“col1”中有“totals”字符串。

更新:

据我从答案中了解到,使用Flat File无法做到这一点。目前我使用“脚本组件”作为源

4 个答案:

答案 0 :(得分:2)

您可以将该行作为单个字符串读取。

有条件地分割出Null和left(col0)==“total”

然后在脚本组件中

使用拆分功能

最后修剪(“\”“)

答案 1 :(得分:1)

我知道SSIS没有任何内置功能可以忽略CSV的最后一行。

处理此问题的一种方法是在数据流之前使用脚本任务,该脚本任务使用FileSystemObject编辑CSV并删除最后一行。

答案 2 :(得分:1)

您需要创建一个自定义脚本,在该脚本中读取SSIS中的所有行,但最后一行。

答案 3 :(得分:0)

这很旧,但是在搜索此主题时出现在我身上。我的解决方案是重定向目标上的行。最后一行被重定向而不是失败,并且作业完成。当然,您可能会重定向不需要的行。这完全取决于您对数据的信任程度。