閱讀797 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Excell導SQL Server 某列包含混合數據 導致非數字串為null

 

【問題描述】

    Excell文件導入SQL Server時,某列數據中即包含純數字組合的串,也包含帶有個別字母的串。導入數據庫時,該列的所有非純數字串為null。例如:

    Excell文件:

    Sid    Name    Code

    1        Jerry       1001

    2        Merry      CN01

    3        Mark       1002

    導入數據庫表後:

    1      Jerry     1001

    2      Merry     null

     3     Mark      1002

【問題原因】

  微軟官方的說法: SQL在導入Excel混合數據列的時候,由於數據類型不唯一,導致SQL無法確定數據類型 。SQL的應對之道就是統計該數據列的前8行數據中出現最多的類型,並以此類型做為默認類型。

 

  如此,該列被自動是被為float類型。即使在導入數據時,Mapping時,將該列的數據類型更改為varchar同樣存在問題。

  我嚐試使用腳本導入Excell,並在導入時,將Code列做類型轉換,問題仍然存在。

 

【解決辦法】

  找到一片CSDN博客:

https://www.cnblogs.com/frostcity/archive/2008/03/07/1095484.html,上麵提供了一種解決辦法:將Excell另存為“製表分隔符文本文件”,利用SQL Server自帶的“導入數據”功能,數據源選擇“文本文件”。後麵是正常的導入方式,問題解決。

最後更新:2017-04-02 00:06:45

  上一篇:go 新建和發布Windows服務的幾個常見問題
  下一篇:go 學好正則表達式兩個最重要的規則