首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

SQL Server 匯入 Excel 字段長度截斷錯誤解決

     編輯:程式設計綜合問答

錯誤訊息

錯誤 0xc020901c: 輸出列 "產品種類" 文本被截斷
錯誤 0xc020902a: 截斷導致失敗
錯誤 0xc0047038: SSIS PrimeOutput 失敗

Excel 欄位資料長度超過資料表對應欄位定義長度。

快速定位問題資料

  1. 在 Excel 新增輔助欄位,假設「產品種類」在 G 欄,資料表欄位長度 200:
=IF(LEN(G2)>200, "超長", "正常")
  • 篩選「超長」列,檢查內容決定截斷或擴大資料庫欄位。
  • 解決方案

    方案一:擴大資料表欄位長度 (最簡單)

    ALTER TABLE TempTable ALTER COLUMN [產品種類] NVARCHAR(500); -- 或 MAX
    

    方案二:SSIS 封裝中設定錯誤輸出導向

    • Excel 來源 → 錯誤輸出 → 截斷/錯誤:設為 導向重導向資料列 (Redirect Row)。
    • 連接至「一般檔案目的地」或資料表記錄錯誤明細,事後人工處理。

    方案三:資料流程中加入「衍生欄位」截斷

    • 衍生欄位轉換:LEFT([產品種類], 200) 強制截斷後再寫入。
    • 缺點:資料遺失,需確認業務可接受。

    方案四:預處理 Excel (Power Query / Python / C#)

    • 匯入前先清洗:截斷、分割、標準化,再產出乾淨 CSV/Excel 供 SSIS 匯入。

    預防措施

    • 建立匯入暫存表,所有欄位用 NVARCHAR(MAX) 或足夠大長度,匯入後再驗證轉型寫入正式表。
    • 資料字典規範欄位長度,前端輸入端同步限制長度。
    • 自動化匯入流程加入長度檢查步驟,失敗時發送警報郵件含問題樣本。

    核心對策:**先在 Excel 端用 LEN 函數快速定位超長資料,再決定擴大欄位、截斷或清洗**。

    1. 上一篇文章:
    2. 下一篇文章:
    Copyright © 程式碼之家 All Rights Reserved