SSIS执行任务以将Excel转换为CSV时出现问题

时间:2016-09-21 13:29:30

标签: sql sql-server visual-studio-2012 ssis sql-server-2012

我们有一项任务,我们需要自动将excel文件转换为csv以准备加载到SQL数据库中。开发人员将此过程构建到SSIS包中。对于转换,他们最初尝试在SSIS包中执行一个任务来执行VBscript来转换文件。当他们在本地机器上运行时,这可以正常工作。当他们通过服务器上的VS手动运行包时,它正确运行。当他们通过Integration Catalog手动运行包时,它正确运行。我们这样做了我们的帐户和服务帐户,并得到了相同的结果。但是,当我们将它作为一个作业安排时,它会挂起执行VBScript的进程。没有错误,它会挂起,直到你杀了这份工作。

作业正在作为服务帐户执行,该服务帐户在服务器上具有完全管理员访问权限,显式完全访问存储和转换文件的共享(位于同一服务器上)以及对SQL的完全管理访问权限。作业所有者设置为sa,使用服务帐户。所有工作都是从集成目录中执行包,如果您独立于作业运行它,则可以使用该目录。当我们将使用服务帐户在集成目录中手动运行的ssisdb执行报告与作业运行进行比较时,它们看起来是相同的,除了挂起在转换任务上的作业而另一个没有。

在花了一些时间试图解决这个问题后,开发人员尝试了另一种解决方案。他们将转换脚本从使用VBScript更改为使用C#。他们从本地机器上运行包装,然后包装再次运行。这次他们在服务器上手动运行它失败了。当我们从集成目录中运行它时失败了,当我们从一个作业运行它失败了。

我们不断得到的错误是"创建CSV文件:错误:调用目标抛出了异常"花了几个小时调查这个错误后,没有任何建议似乎有效。

我们还在新构建的服务器上尝试了这些相同的解决方案,以确保我们不会处理可能已更改的奇怪配置设置(它是一个开发服务器)并且它仍然在那里失败。

此时,我们对正在发生的事情感到十分迷茫。第一种解决方案有效,但出于某种原因,永远不会成为一项工作。除了在服务器上运行之外,第二种解决方案无处不在。

我们正在寻找一些其他解决方案来试图解决这个问题。接下来的事情可能是尝试使用PowerShell来转换文件,但不确定这是否会让我们回到同一个问题。我们非常感谢你们的任何建议

此外,我们正在使用SQL Server 2012开发版,VS 2012专业版,Windows Server 2012 R2

1 个答案:

答案 0 :(得分:0)

这可能是因为Excel在尝试运行作业(使用Excel)时没有错误,并且没有用户登录到特定计算机上。这可能也会影响excel库。解决方案是创建以下2个文件夹:

  • C:\的Windows \ Syswow64资料\配置\ systemprofile \桌面
  • C:\的Windows \ system32 \设置\ systemprofile \桌面

然后重新启动机器。 :)

(编辑显示需要重新启动。感谢Dustin检查此事)