從Excel或csv或txt匯入大批資料進SQL Server 2005或SQL Server 2008時,真怕看到這串錯誤訊息:
作業已停止...
- 正在初始化資料流程工作 (成功)
- 正在初始化連接 (成功)
- 正在設定 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的產品比較快啊!!!!!怒
在經過孤狗大師孤遍海內外文章後,拎北終於成功了!
建議解法:
選擇資料來源➢➢一般檔案來源
選好要匯入的csv或txt檔案後,左邊點選【進階】,將每個文字欄位的DataType改為文字資料流[DT_TEXT]。
整數欄位的DataType改為二位元組不帶正負號的整數[DT_UI2]。
逐步設定好要匯入的資料表、欄位對應後,就會看到這個讓人會心一笑的畫面:
試試看吧!
留言列表