フィールド式 一部のタスクタイプでは、 フィールドマッピングを設定できます。フィールドマッピングにより、ソースフィールドをターゲットフィールドにマッピングする方法を定義します。フィールドマッピングごとに式を指定することができます。
複数のソースフィールドを同じターゲットフィールドにマップすることができます。例えば、SourceFieldAとSourceFieldBをTargetFieldCにマッピングできます。
複数のソースフィールドを1つのターゲットフィールドにマッピングする場合、データ統合 によって操作が提案される場合があります。例えば、複数のテキストフィールドを1つのターゲットテキストフィールドにマッピングする場合、デフォルトではデータ統合 によってソーステキストフィールドが結合されます。デフォルトの式は変更できます。
データ統合 には、ソースデータを変換するために、SQLに似た関数を含むトランスフォーメーション言語が用意されています。それらの関数を使用して、データを変更したり、データが指定した条件と一致するかどうかをテストしたりする式を記述します。
関数およびデータ統合 のトランスフォーメーション言語の詳細については、「関数リファレンス 」を参照してください。
フィールド式の作成 タスクウィザードでフィールド式を作成します。
1 [フィールドマッピング] または [入力パラメータ] ページで、式を追加するターゲットフィールドを選択します。
2 タスクのタイプに応じて、次のいずれかのアクションを実行します。
- [式の追加または編集] をクリックします。- [アクション] > [式の編集] をクリックするか、フィールド名をクリックします。デフォルトでは[フィールド式] ダイアログボックスに、ソースフィールドが式として表示されます。これは、ターゲットにソースと同じ値が含まれることを示します。
3 新しいフィールド式を入力します。
ソースフィールドとシステム変数を式に含めるには、それらを[ソースフィールド] タブと[システム変数] タブから選択して式に挿入するか、手動で式に追加します。
4 [マッピングの検証] をクリックし、フィールドマッピングを検証します。
5 [保存] をクリックします。
フィールドマッピングでの式の検証 フィールドマッピングの式を検証するときは、次のルールおよびガイドラインに従います。
式のトランスフォーメーション言語コンポーネント トランスフォーメーション言語には、簡単な式や複雑な式を作成するための、次の構成要素があります。
• フィールド。ソースフィールドの名前を使用して、フィールドの値を参照します。• リテラル。数値リテラルまたは文字列リテラルを使用して、特定の値を参照します。• 関数。SQLに似た関数を使用して、タスク内のデータを変更します。• 演算子。トランスフォーメーション演算子を使用して、算術演算の実行、データの結合や比較を行う式を作成します。• 定数。事前定義の定数(TRUEなど)を使用して、一定に保たれる値を参照します。SQL ELTモードのマッピングでは、利用するクラウドデータウェアハウスのネイティブ式コンポーネントを使用して式を作成します。式の作成にはInformaticaトランスフォーメーション言語を使用しません。
式の構文 ORDERSなどのフィールドや、10などの数値定数のみを含む単純な式を作成できます。また、複雑な式として、関数の中に別の関数をネストしたり、トランスフォーメーション言語演算子を使って異なる複数のフィールドを結合したりすることもできます。
注: トランスフォーメーション言語は標準SQLに基づいていますが、2つの言語には異なる点もあります。
文字列リテラルと数値リテラル 式には数値リテラルまたは文字列リテラルを含むことができます。
文字列リテラルを一重引用符で囲みます。例:
'Alice Davis'
文字列リテラルでは大文字と小文字が区別されます。一重引用符を除くすべての文字を使用できます。例えば、次のような文字列は使用できません。
'Joan's car'
一重引用符を含む文字列を返すには、CHR関数を使用します。
'Joan' || CHR(39) || 's car'
数値リテラルでは一重引用符を使用しないでください。含めたい数値をそのまま入力します。例:
.05
または
$$Sales_Tax
式に関するルールおよびガイドライン 式を記述するときは、次のルールおよびガイドラインに従います。
• それぞれのソースフィールドについて、ルックアップを実行するか式を作成できます。両方を実行することはできません。• 数字式では文字列を使用できません。例えば、1 + '1' という式は無効です。加算は数値データ型にしか実行できないからです。整数と文字列は加算できません。
• 文字列は数値パラメータとして使用できません。たとえば式SUBSTR(TEXT_VAL, '1', 10) の場合、SUBSTR関数は開始位置に文字列ではなく整数値が必要なため、無効になります。
• 比較演算子を使用する場合、データ型を混在させることはできません。たとえば、123.4 = '123.4' という式は無効です。小数と文字列を比較しているからです。
• 式に渡すことができる値は、フィールドからの値、文字列リテラルまたは数値リテラル、または他の式の結果です。• 関数内の各引数はカンマで区切ります。• リテラルを除き、トランスフォーメーション言語では大文字と小文字は区別されません。• コロン(:)、カンマ(,)、ピリオド(.)は特別な意味を持っているため、構文を指定する場合にのみ使用します。• データ統合タスクは、ダッシュ(-)をマイナス演算子として扱います。• 関数にリテラル値を渡す場合、文字列リテラルは一重引用符で囲みます。数値リテラルには引用符を使用しないでください。データ統合タスクは、一重引用符で囲まれたすべての文字列値を文字列として扱います。• フィールドを指定する際に引用符を使用しないでください。• 1つの式で複数の関数をネストできます。データ統合タスクは、最も内側の関数で始まる式を評価します。• 式でパラメータを使用する場合、適切な関数を使用して値を必要なデータ型に変換します。例えば、次の式を使用して従業員の四半期ごとのボーナスを定義する事もできます。IIF((EMP_SALES < TO_INTEGER($$SalesQuota), 200, 0)
式へのコメント追加 次のコメント指定子を使用して、式にコメントを挿入できます。
• 2本のダッシュ:-- These are comments
• 2本のスラッシュ:// These are comments
データ統合タスクは、コメント指定子の前にある行のすべてのテキストを無視します。例えば、2つの文字列を連結する場合、式の途中に次のようなコメントの付いた式を挿入します。
-- This expression concatenates first and last names for customers: FIRST_NAME -- First names from the CUST table || // Concat symbol LAST_NAME // Last names from the CUST table // Joe Smith Aug 18 1998
データ統合タスクはコメントを無視し、式を次のように評価します。
FIRST_NAME || LAST_NAME
新しい行にコメントを続けることはできません。
-- This expression concatenates first and last names for customers: FIRST_NAME -- First names from the CUST table || // Concat symbol LAST_NAME // Last names from the CUST table Joe Smith Aug 18 1998
この場合、最終行が有効な式でないため、データ統合タスクは式を評価しません。
予約語 定数、演算子、システム変数などの一部のキーワードは、特定の関数に対する予約語となっています。予約語には以下のものがあります。
• :EXT• :INFA• :LKP• :MCR• :SD• :SEQ• :SP• :TD• AND• DD_DELETE• DD_INSERT• DD_REJECT• DD_UPDATE• FALSE• NOT• NULL• OR• PROC_RESULT• SPOUTPUT• TRUE• WORKFLOWSTARTTIME次の予約語はInformatica Intelligent Cloud Services で使用されます。
• ABORTED• DISABLED• FAILED• NOTSTARTED• STARTED• STOPPED• SUCCEEDED注: 予約語をフィールドの名前に使用することはできません。予約語は式の中であらかじめ定義された意味を持ちます。