目次

Search

  1. はじめに
  2. トランスフォーメーション言語
  3. 定数
  4. 演算子
  5. 変数
  6. 日付
  7. 関数
  8. カスタム関数の作成
  9. カスタム関数APIリファレンス

トランスフォーメーション言語リファレンス

トランスフォーメーション言語リファレンス

LOOKUP

LOOKUP

ルックアップソース列内で値を検索します。
LOOKUP関数はルックアップソースのデータと指定した値とを比較します。
PowerCenter統合サービス
がルックアップテーブル内で検索値を見つけた場合、ルックアップテーブル内の同じ行の中の指定された列の値を返します。
LOOKUP関数を使用するマッピングに基づいてセッションを作成する場合は、セッションプロパティで[$Source 接続値]および[$Target 接続値]のデータベース接続を指定する必要があります。Expressionトランスフォーメーションのルックアップ関数を検査するには、マッピング内のルックアップ定義を確認してください。
この関数はマプレットではサポートされません。

LookupトランスフォーメーションとLOOKUP関数の使用

PowerCenterのマッピングで値を検索する場合、LOOKUP
関数
ではなく、Lookup
トランスフォーメーション
を使用します。マッピングでLOOKUP関数を使用する場合、3.5との互換性のために、セッションプロパティでルックアップキャッシュオプションを有効にする必要があります。このオプションは、Lookupトランスフォーメーションを作成しないで、引き続きLOOKUP関数を使用したいPowerMart 3.5ユーザのために特別に用意されているものです。詳細については、『
PowerCenterトランスフォーメーションガイド
』の「Lookupトランスフォーメーション」を参照してください。
LOOKUP関数内では、1つのルックアップテーブルに対して複数の検索を定義できます。ただし、それぞれの検索で一致する値を見つけて、ルックアップ値を返さなければなりません。

構文

LOOKUP(
result, search1, value1 [, search2, value2]
... )
以下の表に、このコマンドの引数を示します。
引数
必須/
オプション
説明
result
必須
任意のデータ型(Binaryを除く)。これはsearch引数と同じルックアップテーブル内の出力ポートでなければなりません。検索で一致した値が見つかったときに返す値を指定します。この引数には、常に参照修飾子:TDを先頭に付けてください。
search1
必須
>value</1>に一致するデータ型。
これはresult引数と同じルックアップテーブル内の出力ポートでなければなりません。value引数に一致させる値を指定します。この引数には、常に参照修飾子:TDを先頭に付けてください。
value1
必須
任意のデータ型(Binaryを除く)。
>search </1>データ型に一致しなければなりません。
>search</1>に指定したルックアップソース列で検索したい値を指定します。
有効なトランスフォーメーション式を必要に応じて入力できます。

戻り値

一致した値がすべての検索で見つかった場合は
Result
を返します。 一致する値が
PowerCenter統合サービス
によって見つかった場合、
search1
引数と同じ行から結果を返します。
一致した値が見つからなかった場合は、NULL。
一致した値が複数個見つかった場合は、エラー。

次の式は、ルックアップソース:TD.SALESから特定の商品IDと価格を検索し、両方の検索に一致したものがあれば、その品名を返します。
LOOKUP( :TD.SALES.ITEM_NAME, :TD.SALES.ITEM_ID, 10, :TD.SALES.PRICE, 15.99 )
ITEM_NAME
ITEM_ID
PRICE
Regulator
5
100.00
Flashlight
10
15.99
Halogen Flashlight
15
15.99
NULL
20
15.99
RETURN VALUE:
Flashlight

LOOKUPのヒント

char値とvarchar値を比較する場合、LOOKUP関数は2つの行が完全に一致した場合に限り結果を返します。つまり、行に対して値と長さの両方が一致する必要があります。ルックアップソースが指定された長さで埋め込まれたchar値であり、ルックアップ検索がvarchar値である場合は、RTRIM関数を使用してルックアップソースから末尾のスペースを削除し、ルックアップ検索の値と一致させる必要があります。
LOOKUP(:TD.ORDERS.PRICE, :TD.ORDERS.ITEM, RTRIM( ORDERS.ITEM, ' '))
LOOKUP関数の
result
引数および
search
引数では、:TD参照修飾子を使用します。
LOOKUP(:TD.ORDERS.ITEM, :TD.ORDERS.PRICE, ORDERS.PRICE, :TD.ORDERS.QTY, ORDERS.QTY)