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

时间:2016-07-22 17:00:30

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

我无法通过命令行实用程序dtexec实现SSIS包的执行。我正在SQL 2012服务器上实现此过程 (64位)与Integration Services和Business Intelligence Development Studio(VS)。

包正在接收一些日志文件,稍微操作它们然后将它们导出到excel。 (我已强制启用32位执行

在visual studio中运行时可以在服务器上正常运行,也可以通过单击package.dtsx文件并手动执行来手动运行。

当我通过dtexec和命令行运行时,我得到一个ACE.OLEDB.12没有注册错误。

screen capture of error

这对我没有意义,因为我知道我安装了驱动程序,并且它在具有相同软件包设置的同一台服务器上手动运行。

过去两天我一直在寻找一点点成功,任何帮助都会受到赞赏!

1 个答案:

答案 0 :(得分:1)

发生此错误是因为命令行调用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