2016-09-13 44 views
0

我遇到以下問題。我有一個1400個字符的行的平面文件。我將這個文件的BULK INSERT運行到一個表中,其中有一個nvarchar(1400)列。批量插入Unicode字符的單列平面文件「截斷」一行

聲明如下:

BULK INSERT tempTable 
FROM 'path\file' 
WITH (FIELDTERMINATOR= '',ROWTERMINATOR = '\n',MAXERRORS = 0) 

這運行正常,沒有錯誤。但仔細研究一下,我注意到有一行已被「截斷」,只有230個字符。

用Sublime打開(大)文件後,我發現這行被截斷了這些特殊字符的外觀,如[NUL](括號應該是一個正方形,這是我在Sublime中看到的方式) 。像

9999999999999 99999999999991000000JOHN DOE [NUL][NUL][NUL][NUL][NUL][NUL]ABCDE99999999 

注意到一些,如果我用記事本打開該文件時,字符被空的空間所取代,就像這樣:

9999999999999 99999999999991000000JOHN DOE   ABCDE99999999 

在任何情況下,有沒有什麼辦法,使批量插入在找到這些字符後繼續閱讀該行,而不是截斷它?

感謝

回答

2

我也面臨着同樣的問題,我們通過使用「SQL Server導入和導出嚮導」解決它。在Microsoft SQL Server管理工作室內部,打開對象瀏覽器並右鍵單擊數據庫名稱。選擇選項任務>>導入數據。新的SQL Server導入和導出嚮導窗口將打開。選擇來源爲平面文件並瀏覽您的平面文件。在目標下,爲SQL Server選擇Microsoft OLE DB提供程序,提供您的SQL服務器名稱和數據庫名稱。在下一頁上,編輯映射(目標表)。希望如此,這將起作用。

+0

謝謝,但這不是我尋找的解決方案。這是ETL解決方案的一部分,因此用戶不會直接與SQL Server交互。 – Heathcliff