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



我有以下CSV文件:

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

随后是2条空白行。该导入失败,因为最后一个数据行的末尾有额外的逗号,并且很可能会因末尾的额外空白而失败。

我可以以某种方式跳过最后一行,甚至更好地停止进口?它总是在" col1"中具有"总计"字符串。

更新:

据我了解,从答案中说,不可能使用平面文件做到这一点。目前,我将"脚本组件"作为源

做到这一点

您可以通过将行读为单个字符串来完成。

有条件拆分为null,左(col0)==" total"

在脚本组件中,您使用拆分函数

最后修剪(" ")

我不知道SSI内置的任何东西,让您忽略CSV的最后一行。

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

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

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

最新更新