我有一些在记事本和Excel中显示正常的CSV文件,但是当我在VS2010或Notepad ++中查看时,它们似乎有额外的换行符。当我尝试在SSIS中处理它们时,文件失败并出现如下错误:
Error: 0xC0202055 at Merge Files, Interface [225]: The column delimiter for column "Column 48" was not found.
这是一个截断的示例(大约有50列,并且换行似乎在同一位置随机换行):
问题是:Notepad和Excel如何打开这些文件OK(并且似乎忽略了换行符)?有没有办法让SSIS处理这些文件?它可能是代码页等的SSIS设置吗?
答案 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