Sql server SSIS包失败,未重定向错误行

Sql server SSIS包失败,未重定向错误行,sql-server,ssis,ssis-2012,Sql Server,Ssis,Ssis 2012,我们有一个SSIS包,用于将数据从CSV平面文件导入SQL Server上的表。该文件由几百行数据组成,这些数据由逗号分隔,文本数据由双引号限定,但并非所有文本列都由双引号限定。如果非引号限定的字符串包含逗号,则会出现问题,。这会导致包失败,并出现以下错误 [源数据[130]]错误:找不到ColumnX列的列分隔符 我试图将坏行重定向到另一个平面文件目标,但包没有重定向坏行,但它失败了如果您无法让生成文件的人修复它,您唯一的编程解决方案是编写一个脚本任务,在文件进入数据流之前修复它 脚本需要分析

我们有一个SSIS包,用于将数据从CSV平面文件导入SQL Server上的表。该文件由几百行数据组成,这些数据由逗号分隔,文本数据由双引号限定,但并非所有文本列都由双引号限定。如果非引号限定的字符串包含逗号,则会出现问题,。这会导致包失败,并出现以下错误

[源数据[130]]错误:找不到ColumnX列的列分隔符


我试图将坏行重定向到另一个平面文件目标,但包没有重定向坏行,但它失败了

如果您无法让生成文件的人修复它,您唯一的编程解决方案是编写一个脚本任务,在文件进入数据流之前修复它


脚本需要分析每一行,看看它是否有正确数量的逗号,并在字段周围添加引号。如果发现一个逗号太多,则必须应用一些逻辑,只有您才能确定哪个逗号不是列分隔符,并确保逗号被删除或包含在带引号的字段值中。

SSIS将无法重定向行,因为行格式不正确。如果您有一个未用引号标识且包含逗号的值,那么对于任何CSV读取器来说,该行将看起来像是有一个额外的列。问题不在于SSIS,而在于您的文件,您需要修复它,以便正确引用包含逗号的值。@Larnu:是的,我手动删除了逗号并处理了文件,但这不是日常处理的理想修复方法。这不是手动修复,生成此文件的上游系统应该应用此修复方法@RaunakJhawar说,不应该是您手动修复文件,您或任何人都应该修复创建文件的过程。错误发生在文件生成,而不是导入,因为尝试导入的文件格式不正确。