1

3つのテーブル(Oracleソース)があり、それらをテーブル1、2、および3と呼びます。

テーブル1のブールフィールドを確認したいと思います。TIの場合はテーブル2のデータのみが必要であり、Fの場合はテーブル3のみが必要です。

これを行うにはどの変換が最も効率的で、どのように実装すればよいでしょうか。

フィルタ、Java、および式の変換を試していますが、式が行ごとにチェックされている場合、式を1回チェックして使用するのではなく、すべての行で実行するのはやり過ぎのようです。適切なテーブル。

テーブル2と3の両方に同じ名前のフィールドがあり、条件に基づいて、テーブルの1つだけにそのフィールドが必要です。

4

1 に答える 1

0

次の図のようなマッピングを作成します。

src_TABLE2 --> sq_TABLE2 --|
                           |--> union --> (further processing)
src_TABLE3 --> sq_TABLE3 --|

ソース修飾子で*Source Filter次の条件を使用します。

-- for sq_TABLE2
'T' = ( SELECT FLAG FROM TABLE1 )

-- for sq_TABLE3
'F' = ( SELECT FLAG FROM TABLE1 )

マッピングには2つのソーステーブルがあり、ユニオントランスフォーメーションはこれら2つのパイプラインからのデータをマージします。ただし、任意の時点でのフィルタリング条件のため、データはソーステーブルの1つからのみ取得されます。

*は、ソース修飾子の[プロパティSource Filter]タブの属性です。ここで設定した条件は、データベースに送信されるステートメントの句に追加されます。WHERESELECT

于 2013-01-09T16:31:07.403 に答える