関数変換の適用

関数変換を使用すると、文字列、数値、変換、および日時の関数を適用し、論理エンティティの属性や、親関数変換のパラメータの 1 つを定義できます。

  1. エンティティ変換ウィザードの [参照] タブをクリックします。
  2. [属性リスト]から、必要な属性を選択します。
  3. [関数] 変換タイプ オプションを選択します。
  4. [カテゴリ] ドロップダウンで、必要に応じて以下のいずれかの関数変換を選択します。
    • [文字列] 関数変換。2 つの文字列の列の連結や、左または右トリムなどです。
    • 数値関数変換。列の数値の絶対値の取得や、文字の ASCII または Unicode 整数表現を返すなどです。
    • 変換関数変換。データ タイプの変換やパースなどを行います。
    • [日時] 関数変換。
      [文字列] 関数変換を適用するには、次の手順に従います。
      [カテゴリ] フィールドで String を選択します。
      必要な文字列変換の [名前] を選択します。
      [string] 矢印をクリックし、[列][定数]、または [関数] オプションを使用して、文字列関数のパラメータを定義します。例えば、関数の [名前] として lcase(string string) を選択した場合、小文字に変換する必要のある文字列を選択します。
      注: 関数の [名前] を選択する際は、関数の [リターン タイプ] が変換で選択した列のデータ タイプに一致するようにしてください。[リターン タイプ] は、関数名を選択した後、[名前] フィールドの下に表示されます。
      [数値] 関数変換を適用するには、次の手順に従います。
      [カテゴリ] フィールドで [数値] を選択します。
      必要な数値変換の [名前] を選択します。
      [number] 矢印をクリックし、[列][定数]、または [関数] オプションを使用して、数値関数のパラメータを定義します。例えば、関数の [名前] として abs(integer number) を選択した場合、絶対値に変換する必要のある整数を選択します。
      注: 結果のデータ タイプが、関数のパラメータに対して想定されるデータタイプと必ず一致するようにします。
      [変換] 関数変換を適用するには、次の手順に従います。
      [カテゴリ] フィールドで [変換] を選択します。
      必要な変換の変換の [名前] を選択します。[名前] フィールドの下に、変換する値および目的の出力フォーマットを指定するオプションが表示されます。例えば、関数の [名前] として parsedouble(string double, string format) を選択した場合、[double] および [format] オプションが表示され、それぞれ値とフォーマットを指定できます。
      [double] をクリックし、[列][定数]、または [関数] オプションを使用して、選択した変換関数のパラメータを定義します。
      注: 結果のデータ タイプが、関数のパラメータに対して想定されるデータタイプと必ず一致するようにします。
      いずれかの [ターゲット] オプション ([列][定数]、または [関数]) を使用して、ソース値を変換する必要があるフォーマットを選択します。詳細については、変換でサポートされているデータタイプ
      注: フォーマットは、Java の小数フォーマットに規定された標準スキームに従います。フォーマットの指定で [定数] オプションを選択する場合の [タイプ] および [値] の例については、次の表を参照してください。
      表 1. DecimalFormat.java の出力
      パターン 出力 説明
      123456.789 ###,###.### 123,456.789 シャープ記号 (#) は桁を示します。カンマはグループ区切り文字のプレースホルダです。ピリオドは小数点記号のプレースホルダです。
      123456.789 ###.## 123456.79 値は小数点以下 3 桁ですが、パターンは小数点以下 2 桁です。format メソッドでは、切り上げが行われます。
      123.78 000000.000 000123.780 シャープ記号 (#) の代わりに 0 の文字が使用されているので、このパターンでは前と後にゼロが指定されています。
      12345.67 $###,###.### $12,345.67 パターンの最初の文字はドル記号 ($) です。書式設定された出力の一番左の桁の直前に配置されます。
      注: 小数フォーマットの詳細については、https://docs.oracle.com/javase/7/docs/api/java/text/DecimalFormat.htmlを参照してください。特殊パターン文字の詳細については、https://docs.oracle.com/javase/7/docs/api/java/text/DecimalFormat.htmlを参照してください。
  5. [OK] をクリックします。
    適用された関数変換は、属性の下に反映されます。
    注: マッピングを削除するには、対応する をクリックします。このポップアップに対する更新内容を取り消すには、[キャンセル] ボタンをクリックします。
  6. [OK] をクリックします。
    マッピングは [マッピングの作成] ページに表示されます。
  7. 詳細を保存するには、[マッピングの作成] ページの [保存] をクリックします。

例 1 - [文字列] 関数変換の適用

物理モデル テーブル demo_Customers1 の列 ItemName の各値の右側の空白を削除して、トリム後の値を、リンクされている論理テーブル Product の列 Name に設定するとします。
  1. キャンバス上のテーブル Product を選択します。
  2. [変換] パネルで、列 Name の横の をクリックし、ポップアップした [列 '名前' の変換] ウィンドウで、[関数] オプションを選択します。
  3. [カテゴリ] ドロップダウン リストで String を選択します。
  4. [名前] ドロップダウン リストで、rtrim(string string) 関数を選択します。
  5. String 関数が、入力フィールドの下のポップアップに追加されます。この関数をクリックして、[列] オプションを使用して、この関数を適用するパラメータを定義します。パラメータの結果のデータ タイプが string になるようにします。
  6. [OK] をクリックします。
適用された関数変換は、キャンバス上に次のように表示されます。

例 2: [数値] 関数変換の適用
  1. [マッピングの作成] ページで、Product テーブルの productid 列を選択します。
  2. [変換] パネルで、列 productid の横の をクリックし、ポップアップした [列 'productid (integer)' の変換] ウィンドウで、[関数] オプションを選択します。
  3. [カテゴリ] ドロップダウン リストで [数値] を選択します。
  4. [名前] ドロップダウン リストで、abs(integer number) を選択します。[名前] フィールドの下に、必要な数値を指定するオプションが表示されます。
  5. [number] 矢印をクリックし、[列] オプションを使用して FramworkDB2 物理モデルの customer_car テーブルの CustID (Integer) 列を選択します。
  6. [OK] をクリックします。

    このマッピングがキャンバスに表示されます。