我最近在尝试运行调用多个子包的主父 SSIS 包时遇到了一个问题。我还没有找到关于这个确切问题的帖子,所以我想我会分享我认为如何解决了这个问题。这是尝试运行包时会发生的错误:
所以在研究了这个问题之后,我相信原因是我试图在我们的一个较低环境中的 64 位服务器上运行 SSIS 包,而主父包调用的一些子包会读取来自 32 位的 MS Access 数据库文件。所以为了解决这个问题,我发现这个网站很有帮助:
...从那里我意识到我需要在调用我的主包运行的 .bat 文件中包含一个“/x86”开关,如下所示:
REM 通过命令行运行 DTSX 包
pushd D:\SFAS\SSIS\SESDatamart\bin
"C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\dtexec.exe" **/x86** /f "D:\SFAS\SSIS\SESDatamart\packages\MASTER DATAMART.dtsx" /set "\package.variables[User::PriorYears].Properties[Value]";3
popd
REM 捕获错误代码并发送到 UC4
exit /b %errorlevel%
无论如何,我想在某个地方发布这个,以便它可以帮助可能遇到这个问题的人。
谢谢!