2013-09-30 134 views
2

我有一張表,其中一列是numeric(18,9)類型。我正嘗試從csv文件批量插入到此表中。請注意,csv文件與表格之間的列匹配。類型不匹配SQL中

一個在CSV列的,具有寫入格式一些數字:3E-445E-2等(其中E是功率的一個符號)。

當試圖將數據批量插入到SQL表中時,出現there is a type mismatch這個特定列的錯誤。該錯誤最可靠地是由任何格式化如例如5E-4

N.B:使用type()在Excel檢查列的類型時,所有的細胞返回1 - >這意味着該列是csv文件numeric類型。

任何方法來克服這個錯誤?

謝謝,

+1

這裏是另一個人對同一問題的解決方案。他們使用兩步法 - http://stackoverflow.com/a/7473216/1504882 – Elias

+0

感謝您的提示。唯一的問題是我的問題規模較大:換句話說,我有很多專欄解決這個問題。如何自動更新表格的所有列而無需單獨鍵入每個列的名稱? – Mayou

回答

0

也許你可以嘗試在兩步過程中做到這一點。首先將數據導入其他所有數字列都是varchar類型的表中,然後將其轉換爲十進制數並插入到另一個表中。

select CONVERT(decimal(18,9), CONVERT(float, '3E-4')) 
+0

我試圖轉換爲先浮動,我仍然得到相同的錯誤...這是我試圖執行的查詢:'ALTER TABLE ALTER COLUMN FLOAT'。仍然得到相同的類型不匹配錯誤。 – Mayou