在 SSIS 中发布包含空列的导入电子表格

Issue importing spreadsheet with column null in SSIS

我在将文件从电子表格导入我们的 sql 数据库 table 时遇到一个奇怪的问题。如果任何列的第一行为空,则整列在 table 中反映为空,即使该列的第 5 行或第 10 行中有数据也是如此。有人在将 .xls 数据导入 sql 服务器数据库时遇到过这个问题吗?同样,如果该列的第一行不为空,则数据将被正确导入。

问题是当导出具有混合数据类型列的 Excel 文件时,它会将非主要类型替换为 null。

这无法通过直接方法解决,但根据我的经验,有两种解决方法可以提供良好的结果。

  1. 添加包含随机文本值的虚拟第一行,如 abc,并将 ;IMEX=1 添加到连接字符串,这将强制 excel 读取数据从第一行开始输入,它会将所有数据读取为 Text

  2. 读取 Excel 没有 Headers 的文件 (在 ConnectionString 中你应该有 HDR=NO。还将 IMEX=1 添加到连接字符串,手动在 Excel Source 中写入列名称,跳过第一行 (其中包含列 headers) 使用脚本组件。


注意:使用 OLEDB 或 Ace(在 Excel 连接管理器中使用)提供程序从 excel 导入数据不会给出 100% 的结果,因此这些解决方法是为了尽量减少尽可能多的错误