0

タイプ A とタイプ B の 2 種類の Excel ファイルを検索し、データを 2 つの異なるステージング テーブル tableA と tableB に読み込む必要がある SSIS パッケージがあります。これらの Excel シートの形式は異なり、それぞれのテーブルと一致します。

簡単にするために、typeA.xlsとtypeB.xlsを2つの異なるフォルダーに入れることを考えました(フォルダーパスを構成可能にする)。必要な Excel ファイルは、他のアプリケーションを介して、または手動でここに配置されます。

私が望むのは、dtsx パッケージでフォルダーをスキャンし、最新の未処理のファイルを選択して、他のファイルを無視してロードし、ファイル名に「-loaded」(typeAxxxxxx-loaded.xls) を追加できるようにすることです。ファイル名の「-loaded」は、既にロードされているファイルとまだロードされていないファイルを区別する方法です。

次の点についてアドバイスが必要です。

a) 構成されたフォルダーで最新のファイルを確認する方法。ファイル名に「-loaded」を付けずにロードしますか? ..そしてそれを読み込んだ後、その構成されたフォルダー内の同じファイルの名前を「-loaded」接尾辞で変更します。

b) これはこれを行う最善の方法ですか、それとももっと良い方法がありますか?

ありがとう。

4

2 に答える 2

1

この方法でそれを行うことができますが、いくつかの複雑な文字列式が必要になる場合があります。

たとえば、.xlsファイル上にForEachループを作成し、ループ内に空のスクリプトタスクを追加してから、このファイルをロードするためのデータフローを追加します。それらを優先順位制約で接続し、条件付きにします。優先順位制約式は、ファイル名が-loaded.xlsで終わっていないかどうかをチェックします。スクリプトタスクで実行することも、優先順位制約で純粋にSSIS式を使用して実行することもできます。最後に、ファイルシステムタスクを追加してファイルの名前を変更します。別の式を使用して新しいファイル名を作成する必要がある場合があります。

2つのフォルダを作成する方が簡単な場合があります。新しい未処理ファイルの受信と処理済みファイルのロードです。処理後、名前を変更せずに.xlsをこのフォルダに移動します。これにより、最初の条件式(およびダミースクリプトタスク)が回避され、ファイルシステムタスクの構成が簡素化されます。

于 2008-11-14T08:15:06.813 に答える
0

SQL ファイル ウォッチャー タスクを取得して、SSIS に追加できます。これは、あなたが望むことを行うためのよりクリーンな方法だと思います。

SQL ファイル ウォッチャー

于 2009-06-30T20:55:33.417 に答える