SSIS 错误未找到列“x”的列分隔符

我有一个如下所示的 CSV 文件

SSIS 错误未找到列“x”的列分隔符

在我的 SSIS 包 (Visual Studio 2017) 中,我创建了一个平面文件连接

文本限定符:“

标题行分隔符:{LF}

要跳过的标题行:0

所有列的Column Delimiter:逗号{,},除了最后一列WCASH的Column Delimiter = {LF}

运行包时,我在平面文件源中收到错误“未找到列“WCASH”的列分隔符。” “跳过数据行时出错。”

我尝试了许多在线建议(将 WCASH 列增加到 3000 个字符左右,删除平面文件连接并重新创建它),但仍然无法修复错误。

你知道我如何修复这个错误吗?

谢谢

sdaSDWDADW 回答:SSIS 错误未找到列“x”的列分隔符

您的电子表格中有一些有趣的功能。第一行中的列名在其中包含尾随空格。第 2+ 行中的列值在双引号(第 3 列)后有空格,第四列和最后两列有前导空格。这听起来像是从大型机生成并强制转换为 CSV 的文件。

如果是我,我不会将其识别为列分隔文件(基于 2 行数据)。这是一种参差不齐的正确文件格式,有人在其中添加了文本分隔符和列分隔符。

  • 使用 LF 作为标题行分隔符
  • 要跳过的标题行 = 1
  • 取消选中第一行的列名

enter image description here

在“列”选项卡中,设置包含引号和逗号的列。

enter image description here

在“高级”选项卡中,每隔一列以忽略命名,下一列将是实际数据。

enter image description here

在我的数据流中,我拉入了忽略列以显示它们确实包含垃圾,但在您的包中,您不会想要这样做。

enter image description here

还剩下什么?

清理。

您不能将数字转换为数字数据类型,因为这些前导空格会导致问题(如果我没记错的话)。另外,字符串数据也可能有尾随空格,所以我会有一个派生列,将 TRIM 应用于所有列。

从那时起,尝试将其转换为强类型值并将其放入您的数据库中。

这是我的示例输入文件(以 unix/linefeed/LF 结尾保存)

"NAME  ","OPEDT ","OBJ","PCT","MGR   ","rr    ","WCASH "       
"AAAA","07/12/92","BELL",3.23,"AUJ",12364.00
"BBBB","01/05/91","PELL",0.78,"ACC",9879.00
本文链接:https://www.f2er.com/566070.html

大家都在问