2013-10-27 66 views
3

我出現在記事本和Excel OK一些CSV文件,但是似乎在他們額外線的飼料,當我在VS2010或記事本查看它們++ 。當我嘗試處理它們在SSIS中,文件失敗,象這樣的錯誤:SSIS:無法處理線的飼料中CSV(列分隔符未找到)

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

這裏有一個截斷示例(有大約50列和行包出現在相同的位置隨機包裝) :

enter image description here

的問題是:如何記事本和Excel OK打開這些文件(貌似忽略該行的飼料)?有沒有辦法讓SSIS處理這些文件?它可能是代碼頁等的SSIS設置?

+0

你的數據看起來損壞。爲什麼一行中有三個值?我假設'ABCDE'末尾的缺失逗號引發了該錯誤,因爲它是列分隔符。 – TsSkTo

+0

有沒有遺漏逗號不好意思:我只是畫展示一個任意線小分集數據,因爲我無法顯示數據的所有49列。有些東西,但我不確定是什麼,導致一個換行符,但Excel處理它沒有問題。 SSIS扼流圈。 – PeterX

+0

我假設你使用平面文件源進行導入。這些列然後被預定義。列分隔符和行分隔符也是如此。如果使用逗號列分隔符和「LF」行分隔符定義一個包含2列的文件,則平面文件將**總是**期望這個字符組合'foo,bar * LF *' – TsSkTo

回答

0

對於我們的最簡單的解決辦法是級的輸入到SQL表,然後在隨後的數據流,查詢它在CSV輸出,例如無線反饋出

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

如果需要回車換行,該怎麼辦? –

1

對我來說,打開Excel中的文件,保存爲Excel文件(XLSX,但我相信老XLS格式將工作也沒關係),然後使用Excel源在SSIS使我對一個文件加載到一個帶有這種問題的SQL表。

顯然,如果你需要經常加載此類型的文件,這將無法工作,或者如果有許多文件。在這種情況下,第一個答案會更好。