SSIS:无法处理CSV中的换行符(未找到列分隔符)

时间:2013-10-27 05:59:03

标签: character-encoding ssis carriage-return linefeed

我有一些在记事本和Excel中显示正常的CSV文件,但是当我在VS2010或Notepad ++中查看时,它们似乎有额外的换行符。当我尝试在SSIS中处理它们时,文件失败并出现如下错误:

Error: 0xC0202055 at Merge Files, Interface [225]: The column delimiter for column "Column 48" was not found.

这是一个截断的示例(大约有50列,并且换行似乎在同一位置随机换行):

enter image description here

问题是:Notepad和Excel如何打开这些文件OK(并且似乎忽略了换行符)?有没有办法让SSIS处理这些文件?它可能是代码页等的SSIS设置吗?

2 个答案:

答案 0 :(得分:1)

对于我在Excel中打开文件,保存为excel文件(xlsx但我确定旧的xls格式也能正常工作),然后在SSIS中使用Excel Source使我能够将文件加载到SQL表中这种问题。

显然,如果您需要定期加载此类文件或者有许多这些文件,这将无效。在这种情况下,第一个答案会更好。

答案 1 :(得分:0)

对我们来说,最简单的解决方案是将输入转换为SQL表,然后在后续数据流中,在CSV输出中没有换行的情况下将其退回,例如。

SELECT COLUMN1
       ,REPLACE(REPLACE([COLUMN2],CHAR(10),''),CHAR(13),'') AS [COLUMN2]
FROM TABLE