これが解決しても謝罪しますが、私の問題を解決する答えを見つけることができませんでした。私は参照するスクリプトタスクを持つ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コンポーネントを作成できないエラーメッセージが表示されて失敗した場合は「doesnの別のSSISパッケージ、スクリプトタスクでMicrosoft Objects参照があり、同じ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にアクセスできないということです。
これはかなり一般的な方法でなければならないので、私はかなり明白なステップを欠いているに違いないと思います。誰でも助けてもらえますか?
おかげで、他の誰かがこの問題を持っている場合には後世のために更新
イアン
「C:\ Program Files \ Microsoft SQL Server \ 120 \ DTS \ Binn \ DTExec.exe」が32ビットDTExecをホストしていると誤解していましたか?私のマシン上では、64ビットのDTExecをホストしているからです(あなたが期待する)。 32ビットバージョンは 'C:¥Program ファイル(x86)¥Microsoft SQL Server¥120¥DTS¥Binn¥DTExec.exe' –
にあるはずです。タイプミスを強調してくれてありがとう。私は将来的に書いている内容にもっと注意を払う必要があります! –