2011-05-27 102 views
10

下降記錄在SSIS(2008)遇到一個非常奇怪的問題。SSIS正在平面文件源導入

基本工作流程如下..

使用簡單文件源(CSV),納入SSIS,推到SQL。

當在開發環境上運行進程時,一切正常。

當DTSX包被放置在生產..使用完全相同的平面文件源,文件中的最後一個記錄是由它得到的SQL PROC的開始的時間下降

已經結束了我可能想到的所有事情,包括行分隔符,列定界符,重建平面文件源連接。

以前有沒有人看過類似的東西?

CSV文件包含10條記錄並有4列。它由逗號分隔,並由{CR} {LF}分隔線段。該文件由Excel生成,並在CSV文件末尾有一個空行。

讓我知道是否需要更多信息。我不知道我還能提供什麼。

+0

您是否對Dev和Live有相同的SQL Server補丁級別?比較兩個服務器的SELECT @@ VERSION'的結果。 – 2011-05-27 06:04:15

+0

生產= [Microsoft SQL Server 2008(RTM) - 10.0.1600.22 x64],開發= [Microsoft SQL Server 2008(SP2) - 10.0.4000.0 x86] – Grant 2011-05-27 06:12:02

+0

儘快將生產升級到SP2是值得的 - 很好地解決你的問題。 – 2011-05-27 06:13:25

回答

0

我以前遇到類似的問題。這通常發生是因爲您的生產SQL框是x64,開發是X32。這仍然令人驚訝,但OLEDB驅動程序並不完全支持 x64 SQL服務器。但是,對於x32位也是如此。

它總是缺少最後一條記錄,稍後會在數據對帳中找到它。 我正在使用平面文件源適配器,然後使用不同的DFT進行試驗和錯誤,發現如果使用BULK INSERT,錯誤消失,因爲它不依賴於X64驅動程序。

+0

這就是答案嗎?它有助於在dtexec.exe上使用/ X86選項嗎? http://msdn.microsoft.com/en-us/library/ms162810.aspx – 2011-07-27 22:07:36

+0

該包是作爲sql server作業的一部分運行的,我沒有指出它在作業的步驟中使用類型下拉的SSIS,然後標籤爲執行選項「使用32位運行時」,但它沒有幫助。奇怪的是,它仍然顯示錯誤,並在論壇上建議使用BCP或批量插入,因爲這些任務不依賴於位。 – Ram 2011-07-28 14:26:01

9

我有這個完全相同的問題。我發現當我將SSIS包從一臺服務器複製到另一臺服務器時,有時平面文件源的文本限定符會變得混亂,所以不是<沒有>它將具有_x003C_none_x003E_。一旦我確定沒有記錄被丟棄。

3

我有同樣的問題,我昨天通過確保單個列不是TextQualified來解決它。把它們全部設置爲虛假地製作我的作品。我希望有所幫助。

+0

這解決了我的問題。類似的問題/解決方案也發佈在dba.stackechange這裏:http://dba.stackexchange.com/questions/6132/ssis-flat-file-manager-skips-the-last-record – 2013-07-01 21:27:06

+1

這個答案是完整的BS和它工作,謝謝你! – rjmd 2015-06-10 07:59:33