目次

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トランスフォーメーション

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

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

NULL値

NULL値

動的ルックアップキャッシュとターゲットテーブルを更新する際、ソースデータにはNULL値が含まれている可能性があります。Integration Serviceは以下の方法でNULL値を処理できます。
  • NULL値を挿入する。
    Integration ServiceはソースのNULL値を使用し、ソースのNULL値をすべて使ってルックアップキャッシュとターゲットテーブルを更新します。
  • NULL値を無視する。
    Integration ServiceはソースのNULL値を無視し、ソースのNULL以外の値のみを使用してルックアップキャッシュとターゲットテーブルを更新します。
ソースデータにNULL値が含まれていることがわかっており、Integration ServiceでNULL値を使ってルックアップキャッシュやターゲットを更新しないようにする場合は、対応するルックアップ/出力ポートに対して[NULLを無視]プロパティを選択します。
たとえば、マスター顧客テーブルを更新したいとします。ソースには新規顧客と苗字に変更のあった既存顧客が含まれています。ソースにはカスタマIDと名前に変更のあった顧客の名前が含まれていますが、住所カラムにNULL値が含まれています。マスター顧客テーブルの既存の住所情報を保持しながら、新規顧客を挿入し、既存の顧客名を更新したいとします。
たとえば、マスター顧客テーブルに以下のデータが含まれるとします。
Primary Key
CUST_ID
CUST_NAME
ADDRESS
CITY
STATE
ZIP
100001
80001
Marion James
100 Main St.
Mt. View
CA
94040
100002
80002
Laura Jones
510 Broadway Ave.
Raleigh
NC
27601
100003
80003
Shelley Lau
220 Burnside Ave.
Portland
OR
97210
ソースには下記のデータが含まれています。
CUST_ID
CUST_NAME
ADDRESS
CITY
STATE
ZIP
80001
Marion Atkins
NULL
NULL
NULL
NULL
80002
Laura Gomez
NULL
NULL
NULL
NULL
99001
Jon Freeman
555 6th Ave.
San Jose
CA
95051
マッピング内のルックアップトランスフォーメーションで[挿入でなければ更新]を選択します。 ルックアップトランスフォーメーションの中のすべてのルックアップ/出力ポートについて[NULLを無視]オプションを選択します。 セッションを実行すると、Integration Serviceがソースデータ内のNULL値を無視し、NULL以外の値を使用してルックアップキャッシュとターゲットテーブルを更新します。
PRIMARYKEY
CUST_ID
CUST_NAME
ADDRESS
CITY
STATE
ZIP
100001
80001
Marion Atkins
100 Main St.
Mt. View
CA
94040
100002
80002
Laura Gomez
510 Broadway Ave.
Raleigh
NC
27601
100003
80003
Shelley Lau
220 Burnside Ave.
Portland
OR
97210
100004
99001
Jon Freeman
555 6th Ave.
San Jose
CA
95051
NULLを無視するように選択した場合、Integration Serviceがルックアップキャッシュに書き込む値と同じ値をターゲットに出力するように確認する必要があります。 NULL値を無視するように選択した場合、ターゲットにNULL入力値を渡すと、ルックアップキャッシュとターゲットテーブルが非同期になる可能性があります。Integration Serviceがキャッシュ内の行を更新するときに、ルックアップ/出力ポートから出力させる値に基づいて、マッピングを設定します。
  • 新しい値。
    ルックアップトランスフォーメーションからターゲットにルックアップ/出力ポートのみを接続します。
  • 古い値。
    ルックアップトランスフォーメーションの後、およびフィルタトランスフォーメーションまたはルータトランスフォーメーションの前に、式トランスフォーメーションを追加します。 ターゲットテーブルの各ポートに式トランスフォーメーションの出力ポートを追加し、NULL入力値をターゲットに出力しないように式を作成します。