微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从Excel导入数据到SQL DB SSIS时,Interger列显示NULL

如何解决从Excel导入数据到SQL DB SSIS时,Interger列显示NULL

我正在使用Excel文件将数据导入sql DB表中。

我的列同时包含Text和Interger数据类型。

在SSIS Excel Source Assistant中预览我的Excel文件时,该整数行显示NULL。

注意:我不需要更改Excel文件中的任何列。

我们可以在SSIS本身中实现吗?

enter image description here

enter image description here

解决方法

Excel驱动程序在指定的源中读取一定数量的行(默认情况下为8行)以猜测每一列的数据类型。当一列显示为包含混合数据类型,尤其是数字数据与文本数据混合时,驱动程序将决定采用多数数据类型,并为包含其他类型数据的单元格返回空值。

因此,对于此问题,此行为是设计使然。为解决此问题,我们在“属性”窗口的Excel连接管理器的连接字符串中,将“扩展属性”的值添加了IMEX = 1。

对于.xlsx文件,Excel Connection Manager的连接字符串类似于: Provider = Microsoft.ACE.OLEDB.12.0;数据源= C:\ Temp \ Test.xlsx;扩展属性=“ Excel 12.0 XML; HDR = YES; IMEX = 1”;

对于.xls文件,Excel Connection Manager的连接字符串类似于: Provider = Microsoft.Jet.OLEDB.4.0;数据源= C:\ Temp \ Test.xls;扩展属性=“ Excel 8.0; HDR = YES; IMEX = 1”;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。