在 SSIS 中发布包含空列的导入电子表格
Issue importing spreadsheet with column null in SSIS
我在将文件从电子表格导入我们的 sql 数据库 table 时遇到一个奇怪的问题。如果任何列的第一行为空,则整列在 table 中反映为空,即使该列的第 5 行或第 10 行中有数据也是如此。有人在将 .xls 数据导入 sql 服务器数据库时遇到过这个问题吗?同样,如果该列的第一行不为空,则数据将被正确导入。
问题是当导出具有混合数据类型列的 Excel 文件时,它会将非主要类型替换为 null。
这无法通过直接方法解决,但根据我的经验,有两种解决方法可以提供良好的结果。
添加包含随机文本值的虚拟第一行,如 abc
,并将 ;IMEX=1
添加到连接字符串,这将强制 excel 读取数据从第一行开始输入,它会将所有数据读取为 Text
读取 Excel 没有 Headers 的文件 (在 ConnectionString 中你应该有 HDR=NO
)。还将 IMEX=1
添加到连接字符串,手动在 Excel Source
中写入列名称,跳过第一行 (其中包含列 headers) 使用脚本组件。
注意:使用 OLEDB 或 Ace(在 Excel 连接管理器中使用)提供程序从 excel 导入数据不会给出 100% 的结果,因此这些解决方法是为了尽量减少尽可能多的错误
我在将文件从电子表格导入我们的 sql 数据库 table 时遇到一个奇怪的问题。如果任何列的第一行为空,则整列在 table 中反映为空,即使该列的第 5 行或第 10 行中有数据也是如此。有人在将 .xls 数据导入 sql 服务器数据库时遇到过这个问题吗?同样,如果该列的第一行不为空,则数据将被正确导入。
问题是当导出具有混合数据类型列的 Excel 文件时,它会将非主要类型替换为 null。
这无法通过直接方法解决,但根据我的经验,有两种解决方法可以提供良好的结果。
添加包含随机文本值的虚拟第一行,如
abc
,并将;IMEX=1
添加到连接字符串,这将强制 excel 读取数据从第一行开始输入,它会将所有数据读取为Text
读取 Excel 没有 Headers 的文件 (在 ConnectionString 中你应该有
HDR=NO
)。还将IMEX=1
添加到连接字符串,手动在Excel Source
中写入列名称,跳过第一行 (其中包含列 headers) 使用脚本组件。
注意:使用 OLEDB 或 Ace(在 Excel 连接管理器中使用)提供程序从 excel 导入数据不会给出 100% 的结果,因此这些解决方法是为了尽量减少尽可能多的错误