0

csvソースファイルをテーブルにロードするパッケージがあります。ソース ファイルには、employee と employeedetails の 2 種類があります。

  1. たとえば、Employee csv ファイルには、eid、ename、designation、age の 4 つの列があります。

  2. Employeedetails csv ファイルには、eid、ename、designation、age、depatname、deptid の 6 つの列があります

  3. 私の宛先テーブルには、eid、ename、designation、age、depatname、deptid があります。

ここで、Variables コレクションのファイル タイプ変数に基づいて、この 2 つのファイルをロードします。その部分も完成させました。

そのため、2 つの Dataflow タスクを使用する代わりに、1 つだけを使用しました。私のDFTには、その中に次の変換があります。

RawFileSource
|
派生列変換
|
Oledb 宛先テーブル

制御フローでは、ファイルタイプを従業員として指定すると、子パッケージを呼び出すパッケージ実行タスクを使用しました。従業員のCSVファイルを取得してrawfileの宛先にロードする従業員パッケージを実行します。

File type を Employeedetails として選択すると、EmployeeDetails Package が実行され、employeeDetails CSV ファイルが取り込まれ、rawfile 宛先にロードされます。

今、私はこの生のファイルを取得し、宛先テーブルにロードする必要があります. 1 つのファイルを読み込むことができますが、Employee ファイルまたは EmployeeDetails ファイルのいずれかである 2 番目のファイルを読み込むと、メタデータの問題が発生します。

このため、パッケージに移動して、すべての変換を変更する必要があります。

すべての変換とパッケージ レベルで、validate External Meta data value を false に維持しようとしました。

この問題を克服して 2 つのファイルをロードする方法。

4

1 に答える 1

0

2 つのファイルの列が異なるため、2 つのデータ フローが必要です。変数として送信したファイル名に基づいて正しいファイルを選択するステップを制御フローに含めることができます。

しかし、詳細ファイルには従業員ファイルのすべての列が含まれているため、その 1 つだけを処理して、もう 1 つを無視してみませんか?

于 2012-06-04T14:02:48.140 に答える