【发布时间】:2010-04-22 11:09:57
【问题描述】:
我在 SSIS 中设置了一个数据流任务。
来源来自 Excel 源而不是 SQL DB。
我似乎遇到的问题是,包正在导入空行。
我的数据有 555200 行中的数据,但是在导入 SSIS 包时导入超过 900,000 行。即使其他行为空,也会导入额外的行。
当我将此表下载到 excel 中时,数据之间有空行。
有没有办法避免这种情况?
谢谢
杰拉德
【问题讨论】:
我在 SSIS 中设置了一个数据流任务。
来源来自 Excel 源而不是 SQL DB。
我似乎遇到的问题是,包正在导入空行。
我的数据有 555200 行中的数据,但是在导入 SSIS 包时导入超过 900,000 行。即使其他行为空,也会导入额外的行。
当我将此表下载到 excel 中时,数据之间有空行。
有没有办法避免这种情况?
谢谢
杰拉德
【问题讨论】:
最好的办法。如果可以,将数据导出到平面文件、csv 或选项卡,然后将其读入。问题是即使这些行是空白的,它们也不是真正的空。因此,当您跳过该 ODBC-Excel 桥时,您会将这些行视为空白。
您可以调整电子表格的生成方式以消除此问题或手动删除行。这些解决方案的问题在于它们不能长期扩展或维护。您还将被那个摇摇晃晃的 ODBC 桥卡住。最好的长期解决方案是完全避免使用 ODBC-Excel 桥。通过将数据转储到平面文件,您可以完全控制如何读取、验证和解释数据。您将不会受制于至今仍充满错误并且在最好的时候“古怪”的翻译层
【讨论】:
您还可以在数据流任务中的源任务和目标任务之间添加条件拆分组件。在这里,检查 somecolumn 是否为 null 或为空——这是一致的——这意味着对于每个有效行,它都有一些数据,对于每个无效行,它是空的或 null。
然后丢弃该条件的输出,将其余行发送到目的地。然后,您应该只从 Excel 中获取包含有效数据的行数。
【讨论】: