将数据从excel加载到sql

将数据从excel加载到sql,sql,Sql,我正在使用SSIS包将数据从excel工作表加载到sql。当我为所有字段使用数据类型varchar(255)将数据加载到表1中时,我没有问题。但是,当我试图将数据从表1加载到表2时,它显示了一个错误:无法将数据类型varchar转换为numeric 表2中的所有字段都具有有效的数据类型。现在,当我查看表1中给出该错误的字段的数据(其数据类型为表2中的decimal(5,2))时,我看到其中一条记录在表1中的值为“2.9999999999999E-2”。excel工作表中的相同记录为0.03 在同

我正在使用SSIS包将数据从excel工作表加载到sql。当我为所有字段使用数据类型varchar(255)将数据加载到表1中时,我没有问题。但是,当我试图将数据从表1加载到表2时,它显示了一个错误:无法将数据类型varchar转换为numeric

表2中的所有字段都具有有效的数据类型。现在,当我查看表1中给出该错误的字段的数据(其数据类型为表2中的decimal(5,2))时,我看到其中一条记录在表1中的值为“2.9999999999999E-2”。excel工作表中的相同记录为0.03

在同一列中,有一条值为0.01的记录。为什么它会更改0.03的值?我必须转换excel工作表中的数据吗?我想按原样从excel工作表加载记录。 我正在使用SQLServer2005


谢谢

您是否考虑过检查连接字符串,特别是IMEX=1?当我过去面临类似的问题时,这对我很有效


可能性是,0.01值在excel的文本单元格中,而0.03值在数字单元格中。您的库看到它有一个数字,并尝试以数字形式导入它。浮点数不能完美地表示某些数字,这会导致错误


解决此问题的一种方法是将原始电子表格中的单元格标记为文本,或者如果您的库具有此功能,请在导入值时将其标记为文本。

很抱歉挖掘了一篇5年的帖子,但看起来很多人都看过它

我遇到了一个类似的问题,excel中的数字采用了科学记数法格式

尝试:

然后把它包装成你需要的任何类型

显然,当你得到科学记数法格式时,它并没有像预期的那样工作

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