2015-03-13 43 views
0

我有一個500MB的txt文件。它不是一個CSV文件(它沒有任何空格以外的分隔符),所以我不能使用tSQL導入它。目前我正在嘗試使用Access的導入規範。我想出瞭如何在代碼中調用它並拋光代碼,以便我可以導入一個小文件(測試文件大小爲200kb)。但現在我有我必須導入的確切文件和500MB的大小。當我運行我的代碼時,它會達到50%左右,然後拋出一個「你的計算機沒有磁盤空間了,你將無法撤銷這個粘貼追加,你想繼續嗎?」錯誤。訪問2012導入500MB文本文件導致磁盤空間不足錯誤

我插入到鏈接的SQL表中。

我該怎麼做才能擺脫這個錯誤,究竟是什麼導致它(我有足夠的磁盤空間和內存容量)?

回答

0

那麼我設法用tsql解決它。問題是文件中的列沒有用任何分隔符分隔。因此,我在訪問中創建了一個導入規範(您可以在每個列中選擇哪一個)。然後,我只是使用規範作爲編寫tsql過程的參考,該過程使用批量插入,然後使用SUBSTRING(訪問規範爲您提供在子字符串中使用的範圍)從txt文件中獲取每個「列」。

現在沒有任何問題。大約需要20分鐘才能導入500MB文件。但我在晚上有一份工作,因此這不是問題。

謝謝大家的幫助。這個問題現在已經關閉了。有關我的解決方案的任何問題,請詢問。

0

你可以批量插入空格分隔的文件在T-SQL就像這樣:

BULK INSERT yourTable 
    FROM 'C:/<filepath>/yourTextFile.txt' 
    WITH 
     (
     --Space delimited 
     FIELDTERMINATOR =' ', 

     --New rows starts at new line 
     ROWTERMINATOR ='\n' 

     --Use this if you have a header row with your column names. 
     --,FIRSTROW = 2 
    ) 
0

你確定你的磁盤空間空間?它不只是編寫這些消息。

是否將磁盤空間實際分配給數據數據和日誌文件?

+0

有一個300 GB的免費磁盤空間 – Miha 2015-03-16 08:22:49

相關問題