有時候我們需要從Excle中的數據導入到sql server中而sql server恰好沒安裝Excle的數據導入插件,這時候我們可以選擇將Excle文件中每一個sheet轉換成.CSV或者.TXT文件導入sql server數據庫中,然而在導入過程中肯定都會遇到一系列問題:字符編碼導致的亂碼問題、導入數據突然多出莫名其妙的引號 分號等問題,下面介紹一下導入過程中容易踩坑的地方以及其解決方法.
1、導入數據中文亂碼問題:
出現中文亂碼問題的地方一般有2個:
1、數據源文件的編碼(.CSV .TXT.........)
我們首先需要確定的是,我們從excle中另存的數據文件當時是按什么編碼進行存儲的,是Unicode編碼還是UTF-8編碼存儲的,很多人往往在保存的時候不注意文件的編碼從而導致在導入數據庫的時候才發現問題。保存的時候看好時按什么字符集編碼的!
當然如果數據庫是按照Unicode編碼的我們想要從Excle導出一個Unicode編碼的.CSV文件怎么辦呢?
解決方法:
先將保存的.csv文件改成.txt文件 然后打開它另存為,txt文件的另存為可以選擇文件字符編碼集,操作如下:
保存完成后去數據庫導入該.CSV文件
2 數據庫導入存在多余符號問題
有時候我們在導出excle文件數據后會出現所有數據都在一行的問題例如下圖這種情況
這種數據在導入數據庫的時候會出現多余分號(")問題
如下情形
SQL 導入.CSV文件
我們會發現每一行的首尾都會出現一個多余的雙引號(".............."),這種情況如何處理
處理方案:
注意這里如果是單一列出現多余分號使用文本限定符號是可行的,但是這種情況下不能使用文本限定符進行操作,我們需要將你的數據源文件(.CSV)轉換成.txt文件然后用查找替換的方式將所有的雙引號替換成空即可!
如果是單一列出現這種多余的符號問題我們只需要在文本限定符中添加該符號即可過濾篩選!
過濾完成后即可看到正常數據
然后點擊下一步,選擇你要導入的數據庫
點擊下一步完成即可成功導入,
注意:有些數據在導入的時候默認類型類nvarchar(50)如果個別字段超出長度就會發生導入報錯,這時候你需要在導入的時候設置一下每個字符串的最大長度,根據長度不宜選過大,也不宜過小