SSIS包在服务器上手动执行时运行,但在从命令行(dtexec)运行时失败

SSIS包在服务器上手动执行时运行,但在从命令行(dtexec)运行时失败

问题描述:

我无法通过命令行实用程序dtexec执行SSIS包的执行。我正在使用Integration Services和Business Intelligence Development Studio(VS)在SQL 2012服务器 (64位)上实施此过程。SSIS包在服务器上手动执行时运行,但在从命令行(dtexec)运行时失败

该软件包正在取得一些日志文件,稍微操纵它们,然后将它们导出到excel。 (I迫使32位执行启用

它当在Visual Studio或手动通过点击package.dtsx文件并手动执行运行运行正常在服务器上。

当我通过DTEXEC和命令行运行,我得到一个ACE.OLEDB.12未注册的错误。

screen capture of error

这是没有意义的我,因为我知道,我已经安装了驱动程序,它运行手动与在同一台服务器上相同的包装设置。

我一直在寻找过去两天的小成功,任何帮助将不胜感激!

+0

如果答案解决了您的问题,请考虑接受答案。以下是http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work ...的方式,然后返回此处并使用勾号/复选标记执行相同操作,直至变为绿色。这告知社区,找到了解决方案。否则,其他人可能会认为这个问题仍然存在,并且可能需要发布(更多)答案。欢迎来到Stack! – Hackerman

因为命令行调用64位DTExec实用程序而导致程序包以64位运行时模式运行,但只安装了32位Microsoft ACE 12.0 OLE DB驱动程序,因此会出现此错误。在BIDS中,软件包以32位运行模式运行(IS项目的Run64BitRuntime属性应该设置为False),因此软件包可以成功执行。要解决此问题,您可以在命令行中指定32位DTExec.exe实用程序,如:

"C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\DTExec.exe" /f yourPackagePath