如果已经得到解答,但是我一直无法找到解决我的问题的答案。我有一个脚本任务引用的SSIS包:执行与DTEXEC引用mso.dll的SSIS包
C:\ Program Files(x86)\ Common Files \ microsoft shared \ OFFICE16 \ MSO.DLL。
当通过SQL Server数据工具执行时,程序包按预期运行。
当部署到Integration Services目录并手动执行时,程序包按预期运行。然后启用xp_cmdshell。
使用该命令时执行包:
DECLARE @returncode INT;
EXEC @returncode = xp_cmdshell 'DTEXEC /ISSERVER "\SSISD
\test\test_DW_ETL\test_script_task.dtsx"'
其与错误消息失败
无法创建ActiveX组件
当另一个SSIS包,其中没有按”在脚本任务中有Microsoft对象引用,使用相同的DTEXEC命令执行,它已成功运行。
当使用该命令执行的脚本的任务包:
DECLARE @returncode INT; EXEC @returncode = xp_cmdshell '@"C:\Program
Files\Microsoft SQL Server\120\DTS\Binn\DTExec.exe" /ISSERVER "\SSISDB
\test\test_DW_ETL\test_script_task.dtsx"'
使用32位DTEXEC,所述包装也失败,错误消息
无法创建ActiveX组件
我试过更改SQL Server的帐户,使用本地系统,本地服务,网络服务,我自己的帐户和一个服务帐户 - 这似乎没有任何区别。
我怀疑DTEXEC无法访问mso.dll。
这必须是一个相当普遍的方法,所以我认为我必须缺少一个相当明显的步骤。任何人都可以提供协助吗?
感谢,
伊恩
您是否犯了一个错字,或者您是否确实表示您认为'Files \ Microsoft SQL Server \ 120 \ DTS \ Binn \ DTExec.exe'包含32位DTExec?C:\ Program ?因为在我的机器上,它托管着64位DTExec(如你所期望的); 32位版本应该位于C:\ Program 文件(x86)\ Microsoft SQL Server \ 120 \ DTS \ Binn \ DTExec.exe' –
感谢您强调错字。我需要更加关注我未来写的内容! –