0

我在通过命令行实用程序 dtexec 执行 SSIS 包时遇到问题。我正在使用 Integration Services 和 Business Intelligence Development Studio (VS) 在 SQL 2012 服务器(64 位)上实现此过程。

该软件包正在接收一些日志文件,对其进行一些操作,然后将它们导出到 Excel。(我已强制启用 32 位执行

在 Visual Studio 中运行或通过单击 package.dtsx 文件并手动执行手动运行时,它在服务器上运行良好。

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

错误的屏幕截图

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

过去两天我一直在搜索,但收效甚微,任何帮助将不胜感激!

4

1 回答 1

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 
于 2016-07-22T17:23:49.460 回答