您的位置:首頁>正文

SQL Server使用導入匯出嚮導導入超過4000個字元的欄位的資料

在使用SQL Server導入匯出嚮導導入資料的時候, 我們經常會碰到某個儲存格的資料超長而被截斷報錯的情況。 本文針對這種場景給出相應的解決方案。

環境描述:SQL Server 2012, 文件源:文字檔(UTF-8編碼)

問題描述:如下圖所示, 由於SQL Server 對字元長度的限制, 當我們選擇Unicode 字串(DT_WSTR)時, 最長的長隊為4000。 這個DataType對應著資料庫中的nvarchar。 這時如果文字檔中的列過長就會報出截斷錯誤。

但其實SQL Server中是有nvarchar(MAX)這個類型的, 理論上可以裝載2G的資料, 所以即使是列的字元超長也是可以承載的。

解決方案如下:

1. 選擇資料類型 : 文本流[DT_TEXT](該資料類型對應著資料庫中的varchar(MAX), 這裡不能直接選擇 “Unicode 文本流 [DT_NTEXT]”, 因為當檔是UTF-8編碼時會報出編碼錯誤(報錯資訊:ANSI 檔不支援此資料類型。 請改用 DT_TEXT))

2. 點擊編輯映射, 將varchar改成nvarchar。

導入之後可以看到, Column3是nvarchar(MAX)類型的資料。

需要注意的是, 這種做法其實是將原有的資料導入中間加了一層Data Convertion, 所以效率上會有一定的損失。

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示