私が対処する最初のエラーは、「OLE DBプロバイダーが利用できないため、Excel接続マネージャーは64ビットバージョンのSSISではサポートされていません。」
すぐに使用できるExcelドライバーは、32ビットアドレス空間にのみ存在します。 BIDS / SSDTは32ビットアプリケーションであるため、Excelのソースと宛先は問題なく機能します。ただし、コマンドライン/ SQLエージェントから実行する場合は、32ビットバージョンのDTEXECプログラムを明示的に使用する必要があります。
ステップ1は、エージェントが自分で実行するサーバーのコマンドラインからパッケージを実行できることを確認することです。 SQL Serverが通常の場所にインストールされていると仮定すると、おそらく次のDTEXEC.exeのいずれかを使用できます
。C:\Program Files\Microsoft SQL Server\90\DTS\Binn\DTExec.exe
c:\Program Files\Microsoft SQL Server\100\DTS\Binn\DTExec.exe
C:\Program Files\Microsoft SQL Server\110\DTS\Binn\DTExec.exe
C:\Program Files\Microsoft SQL Server\120\DTS\Binn\DTExec.exe
C:\Program Files (x86)\Microsoft SQL Server\90\DTS\Binn\DTExec.exe
C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe
C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\DTExec.exe
C:\Program Files (x86)\Microsoft SQL Server\120\DTS\Binn\DTExec.exe
(x86)バージョンを使用することをお勧めします。将来の読者の皆さん、もしあなたがたまたま32バージョンのWindows(Windows 2003かもしれない)を使っているのなら、最初の3つがあなたが利用できる唯一のオプションになるでしょう。 Vivekのエラーメッセージが示しているように、彼は64ビットモードでSSISパッケージを実行しています。
dtexecは、コマンドラインスイッチ / X86を提供します 32ビットと64ビットの両方の操作で同じ実行可能ファイルをシームレスに使用できるようにします。 嘘! ドキュメントはそれを呼びかけていますが、誰がドキュメントを読んでいますか?
このオプションは、SQLServerエージェントでのみ使用されます。コマンドプロンプトでdtexecユーティリティを実行した場合、このオプションは無視されます。
したがって、明示的なパスを指定してパッケージを実行する必要があります
C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe /file C:\folder\GICSReport.dtsx
出力に「保護されたXMLノードの復号化に失敗しました」と表示されます。また、構成ファイルを使用しているため、PackageProtectionLevelをデフォルトのEncryptSensitiveWithUserKeyからDontSaveSensitiveに変更できる可能性があります。この機能は、機密データ(パスワード)の偶発的な公開を防ぐために存在しますが、構成ファイルで既に処理しているため、問題にはなりません。 ...それは、私が考えている他のパッケージ保護レベルの1つからのエラーである可能性があります。
とにかく、最初に32ビットの実行可能ファイルから実行してみてください。それでも問題が解決しない場合は、示されているようにパッケージ保護レベルを変更してみてください。これらのいずれかによってパッケージが期待どおりに実行される場合は、SQLエージェントから同じコマンドを実行してみてください。
すべてが機能する場合は、これを回答としてマークします。そうでない場合は、生成されている現在のエラーでチケットを更新してください。詳細をお尋ねします。