0

私はインターネットを検索して、答えるのが簡単な質問だと思っていました。あなたたちが助けてくれることを願っていますか?

for each ループを使用して特定のファイルを探し、ファイル システム タスクでそれらを別のフォルダーに移動しています。

10 個の csv ファイルがあるとします。リストされたAからJと呼ばれる

私はa、e、jだけを移動したいのですが、foreachloopでそのグループを探すことができないようです。

列挙子の [ファイル] テキスト ボックスに、さまざまな区切り記号で分割された 3 つのファイル名を挿入しようとしましたが、SSIS はすべて 1 つの特定のファイルと見なし、3 つのうちのどれも移動しません。

誰かがそれを行う方法をアドバイスできますか? 確認のために、特定のファイル名のグループだけでワイルドカードロジックを使用しないでください-SQLクエリのIN関数に似ています

前もって感謝します

img が追加されました - 矢印付きのテキスト ボックスで 3 つの特定のファイルを選択する方法を教えてください

4

1 に答える 1

1

OPは私のコメントだけでは進められないので、もう少し詳しく説明します-

  1. を使用しEXECUTE SQL TASKて、必要なファイルの名前を SSIS オブジェクトにダンプします (これを行うには、ストアド プロシージャまたは SQL クエリを使用できます)。前に変数タブでオブジェクト型変数を作成し、出力をに変更して、EXECUTE SQL TASK作成Full Result Setしたばかりのオブジェクトに結果をマップします。これで、このオブジェクトは、ループする必要があるファイルのリストを保持します。
  2. ここで、SSIS ツールボックスから ForEach コンテナーをドラッグ アンド ドロップします。として設定しForEach ADO Enumerator、オブジェクトをマップする必要があります。ForEach コンテナーの各反復後にファイル名を保持する文字列型の別の変数を作成します。Variablesこれを ForEach コンテナーのタブにもマップします。
  3. 次に、File System Taskこれらのファイルを ForEach ループに移動するために使用する を配置します。作成したファイル名変数を使用して、必要なファイルだけを移動します。

ステップ 1 で 3 つのファイル名を取得するためにどの SQL クエリを使用すればよいかわからない場合は、

SELECT 'A.csv'
UNION
SELECT 'E.csv'
UNION 
SELECT 'J.csv'
于 2016-05-01T05:14:38.577 に答える