SSIS Excel目的地为空

时间:2018-02-12 22:13:05

标签: sql-server excel ssis etl

我在通过SSIS将大型数据集(500k +)导出到Excel时遇到问题,输出文件最终导出0行。在说我不应该将那么多记录导出到Excel之前,让我说明我知道并且通常不会。会计不需要CSV并且不愿意在Excel中打开CSV。

使用Visual Studio 2012 SSDT,以下是相关组件。

  1. 执行SQL任务 - >创建带标题的空文件
  2. 数据流任务 - >
    • OLE DB源 - > SQL查询
    • Excel目的地
  3. 在程序包运行时,您可以看到从源到目标的记录。包完成没有错误,但是当你打开文件时,它是空的。唯一的东西是标题。

    如果我选择前1000个记录并导出到Excel,它将按预期工作。

    我尝试过的一些事情:

    1. 在网络上导出到Excel
    2. 本地导出到Excel
    3. 在网络和本地导出为CSV到Excel
    4. 使用带有“Excel 12.0”扩展属性的Office Access数据库引擎12.0导出到Ole DB目标。
    5. 尝试以不同用户身份运行
    6. 所有结果都相同。

      任何人都可以提供有关为何可能发生这种情况以及如何进行的任何见解吗?

1 个答案:

答案 0 :(得分:0)

在SQL Server代理作业中运行ETL时,我们遇到了类似的行为。但是,在Visual Studio中调试它是有效的。所以我不知道,这个解决方案是否适用于您。

原因是运行程序包的用户无法访问C:\ users \ Default。

我通过使用sysinternals进程监视器找到了这个。

我受到了这篇文章的启发:Empty Excel File permissions issue: SSIS Excel Destination buffers large record sets through C:\Users\Default

[我在我的博客中解释了我对这个错误的搜索:https://www.csopro.de/biblog/2018/04/ssis-fehlerbehebung-bei-excel-destination-schreibt-keine-zeilen/不幸的是它是德语的]