2015-08-29 31 views
1

我已經給了一些csv文件,我想將它們轉換爲SQL數據庫中的表。但是,創建這些文件的天才使用逗號分隔符,儘管多個數據字段包含逗號。所以當我嘗試將數據轉換爲數據庫時,我遇到了很多錯誤。導入數據中字段終結符的文件

有沒有一種方法可以避免不是字段分隔符的逗號?此刻,我很想寫一個腳本來手動替換每個文件中的每個逗號,然後通過手動更改受影響的行。

+1

沒有字段標識符/文本限定符?不,這是不可能的。 SQL Server(BCP,導入嚮導,SSIS)對這種事情極其挑剔,如果它看不到預期的結果就會拋出一個錯誤。如果您無法獲得更正的文件,則需要手動進行更正。 –

+1

你不能逃避逗號,即使你可以如何區分分隔符逗號和字面逗號?你真正需要的是用逗號包圍逗號的字段。如果可能的話,我會要求天才在所有領域加上引號(並找到另一行工作)。我擔心,無論您如何處理它,對現有文件所做的任何修復都是高度手動的。 –

+1

我最終編寫了一個替換所有逗號機智管道的腳本,並記錄了管道數量大於它應該的行數,所以我可以通過手動更改這些管道。 – Batman

回答

0

解決此問題的唯一方法是編寫修復數據的腳本或程序。

如果壞的數據僅限於單一領域的過程應該是微不足道的: 您可以通過良好的分隔符的計數消耗來自任何一方的行,一個新的獨特的分隔符來替換,什麼仍然是多餘的列舊的分隔符,你會按原樣離開。

如果你有兩個不好的字段跨越好字段,你需要某種先進的邏輯,例如我有XML數據和分隔符,我必須解析XML直到我找到一個終止標記,然後處理其他分隔符如所須。

相關問題