我是商业智能开发实习生,所以请原谅我,如果我不像SQL或Microsoft BI Stack那样精通。
我尝试将数据从Excel文件(.xls)导入SQL Server数据库表,并且由于某种原因,连接管理器完全忽略了我的数据的最后一列。
为了使事情变得更奇怪,如果我在Excel中打开Excel文件时尝试在SSIS中设置连接管理器,SSIS会读取数据。 (我想我最初是无意中做到了这一点,并对结果感到惊讶。)
以下是未在Excel中打开文件的数据预览:
在SSIS中设置连接管理器之前打开文件的数据预览:
这两个都描述了文件中数据的结束,但出于某种原因,你可以看到,'区域'在第一个数据预览中省略了列。
到目前为止我已尝试过的步骤:
有关源文件的细节:
如果有人有任何想法或建议,我将非常感谢您的反馈。
谢谢!
答案 0 :(得分:1)
我相信在遇到这篇文章之后我发现了我的问题: http://www.experts-exchange.com/questions/25537245/OPENROWSET-last-column-not-returned-unless-excel-file-manually-saved.html
我希望发布它以防将来遇到任何人。
答案 1 :(得分:0)
有时SSIS无法检测给定列的数据类型。这可能会导致意外的NULL。将IMEX = 1添加到ConnectionString可以清除此错误。
实施例 Provider = Microsoft.Jet.OLEDB.4.0; Data Source = Your_Workbook.xls; Extended Properties =“EXCEL 8.0; HDR = NO;”;
变为
Provider = Microsoft.Jet.OLEDB.4.0; Data Source = Your_Workbook.xls; Extended Properties =“EXCEL 8.0; HDR = NO; IMEX = 1 ”;
有关详细信息,请参阅此博文(不是我自己的工作):