目次

Search

  1. はじめに
  2. トランスフォーメーションに関する作業
  3. アグリゲータトランスフォーメーション
  4. カスタムトランスフォーメーション
  5. カスタムトランスフォーメーション関数
  6. データマスキングトランスフォーメーション
  7. データマスキングの例
  8. 式トランスフォーメーション
  9. エクスターナルプロシージャトランスフォーメーション
  10. フィルタトランスフォーメーション
  11. HTTPトランスフォーメーション
  12. ID解決トランスフォーメーション
  13. Javaトランスフォーメーション
  14. JavaトランスフォーメーションAPIのリファレンス
  15. Java式
  16. Javaトランスフォーメーションの例
  17. ジョイナトランスフォーメーション
  18. ルックアップトランスフォーメーション
  19. ルックアップキャッシュ
  20. 動的ルックアップキャッシュ
  21. ノーマライザトランスフォーメーション
  22. ランクトランスフォーメーション
  23. ルータトランスフォーメーション
  24. シーケンスジェネレータトランスフォーメーション
  25. ソータトランスフォーメーション
  26. ソース修飾子トランスフォーメーション
  27. SQLトランスフォーメーション
  28. マッピングにおけるSQLトランスフォーメーションの使用
  29. ストアドプロシージャトランスフォーメーション
  30. トランザクション制御トランスフォーメーション
  31. 共有体トランスフォーメーション
  32. 構造化されていないデータのトランスフォーメーション
  33. アップデートストラテジトランスフォーメーション
  34. XMLトランスフォーメーション

トランスフォーメーションガイド

トランスフォーメーションガイド

SQLオーバーライド

SQLオーバーライド

動的キャッシュを使ってルックアップトランスフォーメーションにWHERE句を追加する場合、フィルタトランスフォーメーションをルックアップトランスフォーメーションの前に接続して、キャッシュまたはターゲットテーブルに挿入しない行をフィルタリングします。 フィルタトランスフォーメーションを含めない場合、キャッシュとターゲットテーブルの間で結果に矛盾が生じる可能性があります。
たとえば、ルックアップトランスフォーメーションを設定して従業員テーブルのEMPに対して動的ルックアップを行い、EMP_IDで一致する行を探すとします。下記のルックアップSQL上書きを定義します。
SELECT EMP_ID, EMP_STATUS FROM EMP ORDER BY EMP_ID, EMP_STATUS WHERE EMP_STATUS = 4
最初に
セッション
マッピング
を実行する際、統合サービスはルックアップSQLオーバーライドに基づいてターゲットテーブルからルックアップキャッシュを作成します。 キャッシュ内のすべての行はWHERE句の条件、
EMP_STATUS = 4
に一致します。
例えば、統合サービスは指定したルックアップ条件に一致するソース行を読み取りますが、EMP_STATUSの値は2です。 ターゲットにEMP_STATUSが2の行がある可能性があっても、統合サービスはSQLオーバーライドのため、キャッシュの行を見つけることができません。 統合サービスはキャッシュに行を挿入して、行をターゲットテーブルに渡します。 行がすでに存在する場合、統合サービスがこの行をターゲットテーブルに挿入すると、結果に矛盾が生じる可能性があります。 さらに、キャッシュ内のすべての行がSQLオーバーライドのWHERE句の条件に一致するとは限りません。
WHERE句に一致する行のみを確実にキャッシュに挿入するには、フィルタトランスフォーメーションをルックアップトランスフォーメーションの前に追加し、ルックアップSQL上書きでWHERE句内の条件をフィルタ条件として定義します。
上記の例では、次のフィルタトランスフォーメーションのフィルタ条件とSQLオーバーライドのWHERE句を入力します。
EMP_STATUS = 4