使用 SQL Server 2005 匯入/匯出精靈 (DTS/SSIS) 匯入文字檔 (CSV/TXT) 時,常遇到「資料截斷」或「文字被截斷」錯誤 (錯誤碼 0xC02020A1, 0xC020902A)。主因是平面檔案連線管理員預設欄位寬度為 50 字元,實際資料超過此長度即報錯。
錯誤 0xc02020a1: 資料流程任務: 資料轉換失敗。資料行 "Column 2" 文字被截斷... 錯誤 0xc020902a: 輸出資料行 "Column 2" 因截斷失敗... 錯誤 0xc0047038: SSIS 錯誤碼 DTS_E_PRIMEOUTPUTFAILED...
平面檔案來源的「進階」頁面中,每個欄位的 OutputColumnWidth 預設為 50。若來源檔案某欄位實際長度超過 50 (如長網址、JSON 片段、備註欄位),資料流程引擎會依據截斷處理原則 (預設為失敗) 中止封裝執行。
MAX 對應的大數值)。SUBSTRING / LEFT 在衍生資料行中預先截斷。ErrorRowDisposition = RedirectRow,不中斷主流程。Get-Content file.csv | ForEach-Object { $_.Split(',')[1].Length } | Measure-Object -Maximum。BULK INSERT / BCP / OPENROWSET(BULK...),效能優於 SSIS 封裝。