1

カレンダー テーブルの Excel ファイルがあります。毎月新しいコラムが追加されます。

列名を読むべきではありません。5 月に ETL を開発したときは、12 月までダミーの列を配置しました。Excelファイルは次のようになりました(列):

customer  jan12  feb12  mar12  apr12  may12

ETL でメタデータ データを形成するために、12 月までダミー列を追加しました。

customer jan12 feb12 mar12 apr12 may12 mon mon mon mon mon mon mon

次に、SSIS Excel Source でクエリを作成しました。

select * from Sheet1$A2:M1624

(列名を読み取らず、12 列目まで読み取る)

6 月に、Excel ファイルは次のようになりました。

customer jan12 feb12 mar12 apr12 may12 jun12

メタデータを作成したので、ロードは平和になると思いました。私の運命に ETL は失敗しました。

4

1 に答える 1

1

ソースの作成中にそれらの列のメタデータが提供された場合でも、実行時に SSIS は Excel ファイルから空白の列を読み込みません。問題のシナリオ: Excel ソースで 10 列を定義し、それらを宛先で 10 列にマップします。実行時に Excel ソースから 3 つの列のみが検出された場合、Excel ソースはメタデータを (自動的に) 3 つの列のみに再構築します。宛先は 10 列でマップされるため、パッケージは検証フェーズで失敗します。

したがって、さまざまな列を含む Excel ファイルを読み取るには、スクリプト タスクを中継する必要があります。ただし、ここでの制限として、少なくとも Excel で使用できる列の最大数に注意する必要があります。これは私たちが残すことができるものです。

解決

于 2012-08-01T11:19:04.367 に答える