2011-09-13 44 views
2

我在SSIS 2008中創建了一個基本的數據流任務,它從基本文本文件讀取信息並將其導入到數據庫中。該文件以分隔符結尾的行{CR} {LF},每個字段由垂直條{|}分隔。爲什麼SSIS OLE DB導入不導入文本文件的最後一行?

我已驗證每行都以我正在導入的文件中的{CR} {LF}結尾,但出於某種原因,它不會導入文件中的最後一行。如果只有1行,它不會導入到數據庫中。

在文件連接管理器中顯示預覽中的所有行,在我目前的情況下是5行。此外,在平面文件源編輯器中的預覽中,它顯示全部5行,但在OLE DB目標中,預覽僅顯示4行。任何想法可能會造成這種情況?謝謝!

+0

我檢查了一下,我確實安裝了SP2。我有多個其他人看看它,因爲它沒有。這是一個超級基本的讀取文件導入到數據庫,並沒有做出爲什麼它錯過了最後一行。試圖關閉SSIS,這也沒有幫助。我唯一能想到的就是重建它,看看是否有幫助。 – buzzzzjay

+0

我已經有了Notepad ++,並且已經檢查了它最後有{CR} {LF}。這就是爲什麼它不能讓它跳過最後一行。 – buzzzzjay

回答

1

有時爲了正確讀取這些文件,需要在最後一行結尾處有一個回車符,並在末尾有效地創建一個空行。

如果文件不是這樣提供的,那麼您可能需要一個腳本組件來修改它。

+0

我試着編輯這個文件,並在最後添加了一個額外的CRLF,它沒有幫助。我甚至嘗試添加多個,它並沒有改變任何東西。我甚至試圖在最後一行之前應對1行,但它仍然沒有像應該那樣添加兩次,因爲表中沒有主鍵。 – buzzzzjay

+0

你最終得到這個工作?從上面的評論看來你仍然有問題。我還沒有解決這個問題。額外的CRLF仍然無法使用。 – doug

1

我相信這是一個SSIS的錯誤。我測試了兩個版本10.0.5500.0和10.0.2531.0。在10.0.5500.0中確實發生此問題,但在over版本上發生此問題。爲了解決舊版本中的問題,我不得不在文件的末尾添加一個額外的文件,以及在user1298950編寫時將Text Qualified值設置爲false。

1

我和SQL Server 2008 R2一樣。經過大量的搜索&拔毛髮現,安裝SQL Server 2008 R2 SP2可以解決問題。請注意,此錯誤不是SP2發行說明的一部分 - 但它會對其進行分類。