Sql server SSIS包没有';t将数据写入excel目标

Sql server SSIS包没有';t将数据写入excel目标,sql-server,excel,ssis,Sql Server,Excel,Ssis,我有一个简单的SSIS包,我正在尝试将同一组数据从表导出到平面文件和excel目标。当我在本地运行时,该软件包工作正常,它创建了包含数据的文本文件和excel文件 但是,当部署到另一台服务器时,sql代理作业运行良好,包的integrations services目录中的日志显示它向excel中写入了9000行,并且还创建了一个新的excel文件,但它不向其中写入任何数据(空白,只有标题)。文本文件工作正常,它有我需要的所有数据 SSIS包流: 我正在使用Sql server 2014,Vis

我有一个简单的SSIS包,我正在尝试将同一组数据从表导出到平面文件和excel目标。当我在本地运行时,该软件包工作正常,它创建了包含数据的文本文件和excel文件

但是,当部署到另一台服务器时,sql代理作业运行良好,包的integrations services目录中的日志显示它向excel中写入了9000行,并且还创建了一个新的excel文件,但它不向其中写入任何数据(空白,只有标题)。文本文件工作正常,它有我需要的所有数据

SSIS包流:


我正在使用Sql server 2014,Visual studio 2013和SSDT,并在Excel destination中使用Excel 2007

使用使用Excel对象的计划SSIS包时,我遇到了奇怪的行为

对我来说,修复方法是编辑代理作业属性。在“执行属性”选项卡上,尝试启用“使用32位运行时”选项,并强制SSI以32位模式而不是64位模式运行。

我们遇到了相同的问题。 解决方案是,运行SSIS包的用户必须具有对c:\users\default的完全访问权限

您可以通过在执行SSIS作业的计算机上运行sysinternals的进程监视器来检查这一点

您可以在此处找到更多信息:

  • -这篇文章让我找到了这个解决方案

  • -我的博客。在这里,我描述了这个问题——不幸的是,用德语]


我在从计划的SQL代理作业写入Excel文件中的多个工作表时遇到同样的问题。它在大约4个月的时间里运行良好。然后突然,由于包没有更改,5个工作表中的一个不再填充数据。没有生成错误消息,并且在VisualStudio和数据工具(我们过去称之为“BIDS”的旧工具)的每次测试中都运行良好

我从来没有找到一个解决方案,它仍然没有将任何数据写入Excel文件中的5个工作表中。(因此,以上关于作业在SQL代理下运行的帐户不具有相应权限的答案不是此问题的正确答案。)

另外,我今天构建的一个新包也有同样的问题,只有这个包只有一个工作表。同样,在开发环境中也可以正常工作,但是目标文件中没有数据,也没有错误。不仅如此,文件上的时间戳与模板文件相同——它似乎从未尝试写入文件

检查Integration Services目录中包的每个运行日志时,每个日志中都有一个条目,显示数据流任务的9K+记录“已写入”

最后,如果更改目标文件名,SQL代理作业将生成预期的错误,这样就排除了猜测路径错误的答案


这很奇怪。确实,DTSRun.exe的位必须与它使用的任何OLE DB驱动程序的位匹配,但是32位和64位版本在64位操作系统中都可以正常工作。我尝试在32位模式下运行,它不起作用,而且我们的一个高级环境没有32位模式驱动程序,因此我必须使用64位模式。删除目标连接并添加新的目标管理器。然后在目标管理器中选择目标文件。这可能有用!对于那些建议将SQL代理作业设置为在32位模式下运行的人(这似乎适用于SSIS的几乎所有问题!),我描述的症状将排除该解决方案。毕竟,根据我的经验,它在64位下作为SQL代理工作运行了好几个月,直到突然出现问题。此外,它仍然继续写入同一文件中的所有其他工作表,没有任何问题。很难相信(但不足为奇)这些年来这个问题仍然存在。微软,醒醒!SSIS和Excel是您的孩子——他们应该一起玩得很好!