【发布时间】:2020-01-20 06:47:16
【问题描述】:
我们有一个 SSIS 包,用于将数据从 CSV 平面文件导入到 SQL Server 上的表中。该文件由数百行数据组成,这些数据由逗号 (,) 分隔,文本数据由双引号 (") 限定,但并非所有文本列都由双引号限定。当字符串不是引号 (") 限定包含逗号 (,)。这会导致包失败并出现以下错误
[源数据 [130]] 错误:未找到列“ColumnX”的列分隔符。
我试图将坏行重定向到另一个平面文件目标,但包没有重定向坏行,但它失败了
【问题讨论】:
-
SSIS 将无法重定向该行,因为该行格式错误。如果您有一个 isn't 引用标识并且确实包含逗号的值,那么对于任何 CSV 阅读器,它看起来就像该行有一个额外的列。问题不是 SSIS,而是您的文件,您需要修复它,以便正确引用包含逗号的值。
-
@Larnu:是的,我手动删除了逗号并处理了文件,但这不是日常处理的理想解决方案。
-
这不是手动修复,生成此文件的上游系统应该应用此修复
-
正如@RaunakJhawar 所说,不应该是您手动修复文件,您(或负责人)应该修复创建文件的过程。错误在于文件生成,而不是导入,因为尝试导入的文件格式错误。
标签: sql-server ssis ssis-2012