Search code examples
sql-servervisual-studio-2012ssissql-server-2012dtexec

SSIS package runs when executed manually on server, but fails when run from Command Line (dtexec)


I am having trouble implementing the execution of a SSIS package via the command line utility dtexec. I am implementing this process on a SQL 2012 server (64 bit) with Integration Services and Business Intelligence Development Studio (VS).

The package is taking in some log files, manipulating them a little and then exporting them to excel. (I have forced 32 bit execution enabled

It runs fine on the server when ran in visual studio or manually by clicking on the package.dtsx file and executing manually.

When I run via dtexec and command line, I get an ACE.OLEDB.12 is not registered error.

screen capture of error

This doesn't make sense to me because I know that I have the driver installed, and it runs manually on the same server with the same package settings.

I have been searching with little success for the past two days, Any help would be appreciated!


Solution

  • The error occurs because the command line calls the 64-bit DTExec utility which makes the package run in 64-bit runtime mode, however, only 32-bit Microsoft ACE 12.0 OLE DB drivers are installed. In BIDS, the package runs in 32-bit runtime mode (the Run64BitRuntime property of the IS project should be set to False), therefore, the package can execute successfully. To address this issue, you can specify the 32-bit DTExec.exe utility in the command line like:

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