如果已經得到解答,但是我一直無法找到解決我的問題的答案。我有一個腳本任務引用的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' –
感謝您強調錯字。我需要更加關注我未來寫的內容! –