-1

Server2(2008、64ビット)にSSISパッケージがあり、コマンドを使用してxp_cmdshellを使用してserver1(2005、32ビット)から呼び出そうとしています。

exec xp_cmdshell 'dtexec /FILE "\\Wdvwd99a0234\PWOSSIS\RTS_SSIS\RTS_ETL.BE_2_DUNSMasterPackage.dtsx"'

エラーが発生し続けます:

Microsoft (R) SQL Server Execute Package Utility バージョン 9.00.5000.00 for 32 ビット Copyright (C) Microsoft Corp 1984-2005. 全著作権所有。NULL 開始: 1:00:42 PM エラー: 2012-11-29 13:00:
42.83 コード: 0xC001700A ソース: 説明: パッケージ内のバージョン番号が無効です。バージョン番号を現在のバージョン番号より大きくすることはできません。終了エラー エラー: 2012-11-29 13:00:42.83
コード: 0xC0016020 ソース: 説明: バージョン 3 からバージョン 2 へのパッケージの移行は、エラー 0xC001700A「パッケージ内のバージョン番号が無効です。バージョン番号を現在のバージョン番号より大きくすることはできません。」で失敗しました。終了エラー エラー: 2012-11-29 13:00:42.83 コード: 0xC0010018 ソース: 説明: ノード "DTS:Property" から値 "3" をロード中にエラーが発生しました。End Error エラー 0xC0010014 のため、パッケージ "\Wdvwd99a0234\PWOSSIS\RTS_SSIS\RTS_ETL.BE_2_DUNSMasterPackage.dtsx" を読み込めませんでした。説明: エラー 0xC0010014 が原因で、パッケージを読み込めませんでした。「1 つ以上のエラーが発生しました。このエラーの前に、エラーの詳細を説明するより具体的なエラーがあるはずです。このメッセージは、エラーが発生した関数からの戻り値として使用されます。 "。これは、CPackage::LoadFromXML が失敗したときに発生します。ソース: 開始: 1:00:42 PM 終了: 1:00:42 PM 経過: 0.078 秒 NULL

4

2 に答える 2

3

他の人がコメントしているように、dtexec.exe のバージョンはターゲット パッケージのバージョンと一致する必要があります。あなたの選択肢は

  • Server1 に 2008 Integration Services コンポーネントをインストールします。xp_cmdshell が 2008 バージョンを確実に実行するには、dtexec への明示的なパスを指定する必要があります。
  • リモート (Server2) マシンでパッケージを実行します。参入障壁が最も低いのは、パッケージを実行するだけのスケジュールされていない SQL エージェント ジョブを Server2 に作成するRTS_ETL.BE_2_DUNSMasterPackage.dtsxことです。次に、現在の xp_cmdshell の代わりにジョブを開始します。EXECUTE msdb.dbo.sp_start_job 'RTS_ETL.BE_2_DUNSMasterPackage'このアプローチの 2 つの注意点
    1. マシンがサポートできる限り多くの同時 dtexec 呼び出しを実行できます。特定の SQL エージェント ジョブを複数回実行することはできません。
    2. 動的ランタイム オプションを提供していた場合、それもエージェント ジョブでは機能しません。
于 2012-11-29T21:16:11.827 に答える
2

2008 パッケージは、2005 パッケージ ユーティリティでは実行できません。

于 2012-11-29T20:07:53.110 に答える