コマンドラインで/ ConfigFile something.dtsConfigを指定すると、2005年と比較して2008年にパッケージ構成が変更されるため、パッケージで定義された変数は、構成ファイルの設定を使用するのではなく、設計時の値を保持します。
外部構成ファイルを使用する方法を完全に理解しているのか、私にはよくわかりません。設定されている設計時の構成のみが外部ファイルの負荷を上書きすることを述べている記事を読みました。これは、変数を空の文字列に変更すると、上書きされることを意味しますか?変数を完全に削除することはできません!整数はどうですか?
パッケージ内のパッケージ構成を使用してオフにすることについて言及している記事を見ました。
SSISパッケージエディターまたはXMLエディターを使用してパッケージ内の構成ファイルのパスを変更し、そのファイルの設定を "外部"(外部の/ ConfigFileオプションに関係なく)使用しますが、パッケージの変更。 Test.dtsConfigとProduction.dtsConfigを含む1つのパッケージが必要で、パッケージを変更せずに前後にスワップできるようにします。
これを行うための推奨される方法は何ですか?
BIDSで実行する場合、パッケージは最初に構成ファイルから変数値を取得し、構成ファイルが存在しない場合にのみ警告がスローされ、値がパッケージから取得されることを考慮する必要があります。
さて、コマンドラインの状況は少し異なります。次のような状況が考えられます。
設定ファイルを選択せずに、cmd行でパッケージを実行します。
dtExec /file "e:\Work\TestPackageConfiguration\TestPackageConfiguration\TestPackage.dtsx"
設定ファイルを選択せずにcmd行でパッケージを実行しますが、呼び出しで変数を設定します。
dtExec /file "e:\Work\TestPackageConfiguration\TestPackageConfiguration\TestPackage.dtsx" /SET \Package.Variables[checkMe];"outside the package in cmd line"
新しい構成ファイルを使用してcmd行でパッケージを実行します(Prodの代わりにDEVとしましょう):
dtExec /file "e:\Work\TestPackageConfiguration\TestPackageConfiguration\TestPackage.dtsx" /configFile "c:\ETL Config\TestPackage_config_Dev.dtsConfig"
新しい構成ファイルと呼び出しのSETステートメントを使用して、コマンドラインでパッケージを実行します。
dtExec /file "e:\Work\TestPackageConfiguration\TestPackageConfiguration\TestPackage.dtsx" /configFile "c:\ETL Config\TestPackage_config_Dev.dtsConfig" /SET \Package.Variables[checkMe];"outside the package in cmd line - DEV config"
つまり、簡単に言うと、新しい構成ファイルを使用する場合は、古い構成ファイルの名前を変更/移動し、/ configFileを使用してパッケージを呼び出す必要があります。それだけでは不十分で、新しい設定ファイルも上書きしたい場合は、/ SET変数を使用します。または、構成ファイルをバイパスして、バッチ呼び出しで/ SETステートメントを使用することもできます。
うまくいけば、あなたの可能性に光を当てることができます。