2015-12-22 138 views
0

首先,我確實在研究上花了相當多的時間,並且我知道有很多相關的問題,但我無法在這個問題上找到正確的答案。SSIS讀取平面文件跳過第一行

我正在創建一個SSIS包,它執行以下操作: 1.使用HTTP連接在本地下載和存儲CSV文件。 和2.讀取CSV文件並存儲在SQL Server上。

由於我的平面文件的結構,平面文件連接不斷給我提供錯誤,無論是在SSIS中,還是在SQL導入嚮導中。

的文件的結構是:

"name of file" 
"columnA","columnB" 
"valueA1","valueB1" 
"valueA2","valueB2" 

因此,行分母是線{CR} {LF}和列分母的端部爲逗號{,},與文本限定符」

我想僅導入值,文件沒有名稱或列名。

我的設置發揮各地,並得到了與以下設置正確的預覽(見下圖)

enter image description here

- Header rows to skip: 0 
- Column names in the first data row: no 
- 2 self-configured columns (string with columnWidth = 255) 
- Data rows to skip: 2 

當我運行SSIS包或SQL導入嚮導,我得到以下錯誤:

[SSIS.Pipeline] Error: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED. The PrimeOutput method on Flat File Source returned error code 0xC0202091. The component returned a failure code when the pipeline engine called PrimeOutput(). The meaning of the failure code is defined by the component, but the error is fatal and the pipeline stopped executing. There may be error messages posted before this with more information about the failure.

我想不出什麼不順心和我能做些什麼,使這個導入工作。

+0

'如果第一行*不包含列名 - 在這種情況下。 2如果你不想列名 –

+0

感謝您的快速回復。該程序包運行時不會引發錯誤,但不會處理任何數據。在進行中,我發現:「[Flat File Source [2]]警告:在讀取標題行時到達數據文件的末尾,確保標題行分隔符和跳過的標題行數是正確的。 – Dendrobates

+0

然後你可能使用了錯誤的行分隔符 - 而不是CRLF使用LF。你有試過預覽數據嗎? 「預覽」按鈕在源的屬性頁面中可用。如果設置正確,您會看到數據正確對齊的網格。如果沒有,你會看到數據錯亂或者出現錯誤 –

回答

1

如果要跳過文件名和列名稱,則需要將Header Rows to skip設置爲2.您還應該檢查文件是否實際使用換行符(LF)而不是CR + LF。在文本編輯器中檢查換行符不足以檢測到差異,因爲大多數編輯器都使用CR+LFLF正確顯示文件。

您可以通過點擊平面文件源中的「預覽」按鈕來檢查設置的結果。如果設置是正確的,你會看到一個數據正確對齊的網格。如果沒有,你會得到一個錯誤,或者數據會以某種方式出錯,例如,第一個數據行中有很多列,列名等。