2017-05-23 6 views
0

SQLテーブルに複数のファイルをロードする必要があります。私は3つの異なるフォーマット、CSV、XLSXとXLSを持っていますが、私は一度に1つのタイプのファイルをロードし、異なるファイルタイプを組み合わせません。ファイルがフォルダに存在するかどうかを確認する(SSIS、SDT 2015、SQL 2016)

まず、ファイルが存在するかどうかをソースフォルダにチェックインします。存在する場合は、テーブルにロードして次のファイルに移動します。ファイルのチェックと選択プロセスは動的でなければなりません。私は変数にファイル名をハードコードしたくありません。パッケージが起動すると、パッケージを実行するたびにフォルダにある最初のファイルを保持するためにfilename変数が必要になります。

ファイルがフォルダ内に見つからない場合は、ファイルが存在しないという警告メッセージを送信します。例えば

私は私のフォルダ内の三つのファイル、

File1.csv 
File2.csv 
File3.csv 

を持っている場合、私は私のパッケージを実行し、私はハード最初の実行中にファイル名variable = File1.csvをコーディングします。私のパッケージは正常に実行され、file1がテーブルにロードされ、アーカイブフォルダにアーカイブされます。

次回ループが実行されるとき、変数filename = File1が検索されますが、すでにアーカイブされているため、パッケージからfile2を処理できません。どのようにこれを正しく行うことができますか?

+0

[link](https://stackoverflow.com/documentation/ssis/9838/load-multiple-csv-files-of-same-format-from-a-folder#t=201705230900554127469)〜 Loadフォルダから同じ形式の複数のCSVファイル – observer

答えて

0

最初にスクリプトタスクを使用してフォルダ内にファイルが存在するかどうかを確認します。整数変数を作成し、ファイルが見つかった場合は1、ファイルが見つからない場合は0に設定します。優先順位制約に式と制約を使用します。 http://www.techbrothersit.com/2013/07/ssis-how-to-check-if-file-exists-in.html 評価式が偽の場合は、メールタスクに接続します。そうでない場合は、 をループタスクごとに接続します。 参考:https://www.simple-talk.com/sql/ssis/ssis-basics-introducing-the-foreach-loop-container/以上を参照してください。

+0

いいえこれは私が探しているのではない... ..私のポストplzを読んでいる。 – user3663808

関連する問題