SSIS 错误找不到列 "x" 的列分隔符
SSIS error The column delimiter for column "x" was not found
我有一个如下所示的 CSV 文件
在我的 SSIS 包 (Visual Studio 2017) 中,我创建了一个平面文件连接
文本限定符:“
Header 行分隔符:{LF}
Header 要跳过的行:0
所有列的列分隔符:逗号 {,},最后一列 WCASH 除外,其列分隔符 = {LF}
当 运行 包时,我在平面文件源中收到错误消息“找不到列“WCASH”的列定界符。”
“跳过数据行时出错。”
我尝试了很多网上的建议(将 WCASH 列增加到大约 3000 个字符,删除 Flat 文件连接并重新创建它),但仍然无法修复错误。
你知道我该如何修复这个错误吗?
谢谢
您的电子表格中有一些有趣的功能。第一行中的列名称中有尾随空格。第 2+ 行中的列值在右双引号(第 3 列)之后有空格,第四列和最后两列有前导空格。这闻起来像是从大型机生成并强制转换为 CSV 的文件。
如果是我,我不会将此识别为列分隔文件(基于 2 行数据)。这是有人添加了文本分隔符和列分隔符的右文件格式。
- 使用 LF 作为 header 行分隔符
- header 要跳过的行 = 1
- 取消选中第一行中的列名称
在“列”选项卡中,设置引号和逗号所在的列。
在“高级”选项卡中,每隔一列以 忽略 命名,下一列将是实际数据。
在我的数据流中,我拉入了忽略列以表明它们确实包含垃圾,但在您的包裹中,您不希望这样做。
还剩什么?
清理。
您不能将数字转换为数字数据类型,因为这些前导空格会导致问题(如果我没记错的话)。另外,字符串数据也可能有尾随空格,因此我将有一个派生列将 TRIM 应用于所有列。
从那时起,尝试转换为强类型值并将其放入数据库。
这是我的示例输入文件(以 unix/linefeed/LF 结尾保存)
"NAME ","OPEDT ","OBJ","PCT","MGR ","rr ","WCASH "
"AAAA","07/12/92","BELL" , 3.23,"AUJ", 0, 12364.00
"BBBB","01/05/91","PELL" , 0.78,"ACC", 0, 9879.00
我有一个如下所示的 CSV 文件
在我的 SSIS 包 (Visual Studio 2017) 中,我创建了一个平面文件连接
文本限定符:“
Header 行分隔符:{LF}
Header 要跳过的行:0
所有列的列分隔符:逗号 {,},最后一列 WCASH 除外,其列分隔符 = {LF}
当 运行 包时,我在平面文件源中收到错误消息“找不到列“WCASH”的列定界符。” “跳过数据行时出错。”
我尝试了很多网上的建议(将 WCASH 列增加到大约 3000 个字符,删除 Flat 文件连接并重新创建它),但仍然无法修复错误。
你知道我该如何修复这个错误吗?
谢谢
您的电子表格中有一些有趣的功能。第一行中的列名称中有尾随空格。第 2+ 行中的列值在右双引号(第 3 列)之后有空格,第四列和最后两列有前导空格。这闻起来像是从大型机生成并强制转换为 CSV 的文件。
如果是我,我不会将此识别为列分隔文件(基于 2 行数据)。这是有人添加了文本分隔符和列分隔符的右文件格式。
- 使用 LF 作为 header 行分隔符
- header 要跳过的行 = 1
- 取消选中第一行中的列名称
在“列”选项卡中,设置引号和逗号所在的列。
在“高级”选项卡中,每隔一列以 忽略 命名,下一列将是实际数据。
在我的数据流中,我拉入了忽略列以表明它们确实包含垃圾,但在您的包裹中,您不希望这样做。
还剩什么?
清理。
您不能将数字转换为数字数据类型,因为这些前导空格会导致问题(如果我没记错的话)。另外,字符串数据也可能有尾随空格,因此我将有一个派生列将 TRIM 应用于所有列。
从那时起,尝试转换为强类型值并将其放入数据库。
这是我的示例输入文件(以 unix/linefeed/LF 结尾保存)
"NAME ","OPEDT ","OBJ","PCT","MGR ","rr ","WCASH "
"AAAA","07/12/92","BELL" , 3.23,"AUJ", 0, 12364.00
"BBBB","01/05/91","PELL" , 0.78,"ACC", 0, 9879.00