2011-06-10 79 views
0

我使用SSIS包將數據從excel表格加載到sql。當我使用數據類型varchar(255)將數據加載到table1中時,我沒有任何問題。但是,當我試圖從table1加載數據到table2時,它顯示一個錯誤:無法將數據類型varchar轉換爲數字。從excel加載數據到sql

表2中的所有字段都有有效的數據類型。現在,當我查看錶1中該字段的數據(其數據類型爲表2中的十進制數(5,2))時,發現該錯誤,我在表1中看到其中一條記錄的值爲「2.9999999999999999E-2」 。 Excel表中的記錄是0.03。

在同一列中有一個值爲0.01的記錄。爲什麼它改變0.03的值?我是否必須在Excel表格中轉換數據?我想按照它們的方式從excel表格加載記錄。 我使用SQL Server 2005的

感謝

回答

1

賠率是,認爲0.01值在Excel中的一個文本單元,而0.03是在數值細胞。你的圖書館認爲它有一個數字,並試圖以數字方式導入它。浮點數不能完美地表示某些數字,這會導致錯誤。

解決此問題的一種方法是將原始電子表格中的單元格標記爲文本,或者如果您的庫具有該功能,則在導入值時將它們標記爲文本。

0

抱歉挖掘了一個5歲的帖子,但看起來好像有很多人看過它。

我遇到類似的問題,用數字從Excel過來的科學記數法格式

嘗試:

CONVERT(FLOAT, [Your Column Here], 2) 

然後包裝成任何類型的需要

很顯然,當你科學記數法格式不能按預期工作。

This is how I found the answer see Quassnoi's post