在VARCHAR数据types中,EXCEL导入到sql返回NULL的小数

我正在研究一些在过去几年中大量增长的软件,并且需要定期更新数据库。 客户现在向我们提供大数据表格上的数据,我们将格式化并开始导入到数据库中。 我正在使用导入和导出数据(32位)向导。 数据库中的一列包含“1.1.1.2”等值,我将它们作为Varchar导入,因为这是数据库中的数据types。 但是,对于像'8.5'这样的值,'NULL'正在被导入insead。 只有当有一个小数点时才会发生。

这是一个Excel格式错误,或者它是错误的数据types?

它在Excel中格式化。 我在导入和导出数据向导和Excel中遇到了很多麻烦,现在我首先将Excel文件保存为csv文件,以删除格式化,然后导入它。 这样做需要额外的几秒钟,但节省了我以后不得不处理前导零被丢弃,随机NULL值等。

我的第一个build议是让你的客户发送文本文件或至less.csv文件。 Excel的转换是可怕的,你会花更多的时间让事情正常工作,如果你的客户停止给你Excel的开始。

问题是数据types是由最早的行确定的,因此如果Excel以后认为数据是Int或小数而不是文本,那么导入将认为这是错误的数据并将其清空。

调整咆哮function:我导入数据的生活,我拒绝接受Excel文件,因为有很多,更多的问题来处理试图导入他们和任何其他types的文件。 我们必须向其中一些人发出指示,告诉他们如何将Excel文件保存为.csv文件,但如果您不接受Excel作为数据源,那么创build导入文件将花费我们的不less钱。 很遗憾,deviseSSIS的人(这是向导使用的内幕)似乎认为Excel是less数人需要导入的东西,因此没有花时间为它创build一个良好的导入path。 这是他们自己公司的产品大声哭泣。 人们会认为它会有一些最好的支持。 closures咆哮function。

我发现通过运行一个脚本,在任何数字字段的前面放置一个“',使得它们可以导入SQL。

我在12个电子表格中遇到了这个问题,不知道为什么会出现问题。

如果你有很多行,一个简单的VBA脚本可以使这个简单。