close

Excelcsvtxt匯入大批資料進SQL Server 2005SQL Server 2008時,真怕看到這串錯誤訊息:

 2011061501SQL Server:匯入資料遭遇“文字已截斷”錯誤 


 

 

作業已停止...

 

- 正在初始化資料流程工作 (成功)

 

- 正在初始化連接 (成功)

 

- 正在設定 SQL 命令 (成功)

 

- 正在設定來源連接 (成功)

 

- 正在設定目的地連接 (成功)

 

- 正在驗證 (警告)

      訊息

      * 警告 0x802092a7: 資料流程工作 1: 從長度為 50 的資料流程資料行 "資料行 0" 插入資料至長度為 9 的資料庫資料行 "aaaa",因此可能會出現截斷。

       (SQL Server 匯入和匯出精靈)

     

      * 警告 0x802092a7: 資料流程工作 1: 從長度為 50 的資料流程資料行 "資料行 1" 插入資料至長度為 16 的資料庫資料行 "bbbb",因此可能會出現截斷。

       (SQL Server 匯入和匯出精靈)

     

      * 警告 0x802092a7: 資料流程工作 1: 從長度為 50 的資料流程資料行 "資料行 0" 插入資料至長度為 9 的資料庫資料行 "aaaa",因此可能會出現截斷。

       (SQL Server 匯入和匯出精靈)

     

      * 警告 0x802092a7: 資料流程工作 1: 從長度為 50 的資料流程資料行 "資料行 1" 插入資料至長度為 16 的資料庫資料行 "bbbb",因此可能會出現截斷。

       (SQL Server 匯入和匯出精靈)

     

 

- 準備執行 (成功)

 

- 執行前 (成功)

      訊息

      * 資訊 0x402090dc: 資料流程工作 1: 檔案 "E:\Document\test.txt" 的處理已開始。

       (SQL Server 匯入和匯出精靈)

     

 

- 正在執行 (錯誤)

      訊息

      * 錯誤 0xc02020a1: 資料流程工作 1: 資料轉換失敗。資料行 "資料行 12" 的資料轉換傳回狀態值 4 和狀態文字 "文字已截斷,或者一或多個字元在目標字碼頁裡沒有相符者。"

       (SQL Server 匯入和匯出精靈)

     

      * 錯誤 0xc020902a: 資料流程工作 1: 因為發生截斷,且 "輸出資料行 "資料行 12" (58)" 的截斷資料列配置指定在截斷時失敗,所以 "輸出資料行 "資料行 12" (58)" 失敗。在指定的元件上,指定的物件發生截斷錯誤。

       (SQL Server 匯入和匯出精靈)

     

      * 錯誤 0xc0202092: 資料流程工作 1: 處理資料列 -233495531974817921 上的檔案 "E:\Document\test.txt" 時發生錯誤。

       (SQL Server 匯入和匯出精靈)

     

      * 錯誤 0xc0047038: 資料流程工作 1: SSIS 錯誤碼 DTS_E_PRIMEOUTPUTFAILED。在 元件 "來源 - test_txt" (1) 上的 PrimeOutput 方法傳回錯誤碼 0xC0202092。當管線引擎呼叫 PrimeOutput() 時,元件傳回失敗碼。在此之前可能已公佈過錯誤訊息,說明有關此失敗的詳細資訊。

       (SQL Server 匯入和匯出精靈)

     

 

- 正在複製到 [dbo].[aaaa] (已停止)

 

- 執行後 (成功)

      訊息

      * 資訊 0x402090dd: 資料流程工作 1: 檔案 "E:\Document\test.txt" 的處理已結束。

       (SQL Server 匯入和匯出精靈)

     

      * 資訊 0x402090df: 資料流程工作 1: "元件 "目的地 - aaaa" (62)" 中資料插入作業的最終認可已啟動。

       (SQL Server 匯入和匯出精靈)

     

      * 資訊 0x402090e0: 資料流程工作 1: "元件 "目的地 - aaaa" (62)" 中資料插入作業的最終認可已結束。

       (SQL Server 匯入和匯出精靈)

     

      * 資訊 0x4004300b: 資料流程工作 1: "元件 "目的地 - aaaa" (62)" 寫入 0 個資料列。

       (SQL Server 匯入和匯出精靈)

 

 

 

 

 

這時,加長SQL Server資料庫的資料表欄位長度是沒有用的!

 

 

 

我曾經以為把幾萬筆資料,切成一次匯300筆,好像可以匯得進去……

但要匯上千次,會讓人更想死吧!

 

 

 

我曾經以為去下載並安裝新的Service Pack就可以解決……

但是不是請微軟重新開發不用再安裝SP的產品比較快啊!!!!!怒

 

 

 

 

 

 

 

 

 

在經過孤狗大師孤遍海內外文章後,拎北終於成功了!

 

 

 

建議解法: 

選擇資料來源➢➢一般檔案來源

 

選好要匯入的csvtxt檔案後,左邊點選【進階】,將每個文字欄位的DataType改為文字資料流[DT_TEXT]

 2011061502SQL Server:匯入資料遭遇“文字已截斷”錯誤  

 

 

 

整數欄位的DataType改為二位元組不帶正負號的整數[DT_UI2]

 2011061503SQL Server:匯入資料遭遇“文字已截斷”錯誤  

 

 

 

逐步設定好要匯入的資料表、欄位對應後,就會看到這個讓人會心一笑的畫面:

 2011061504SQL Server:匯入資料遭遇“文字已截斷”錯誤  

 

試試看吧!

arrow
arrow
    全站熱搜

    姊姊❉心得報告 發表在 痞客邦 留言(0) 人氣()