3.5.7. lookup 関数
Lookup 関数は、参照テーブルから値へのアクセスを迅速化する手段を提供します。Lookup 関数はすべてのキーを自動的にキャッシュし、参照されるテーブルの関数で宣言された列のペアを返します。同じキーと戻り値の列を使用して、同じテーブルに対して後続のルックアップを行うと、キャッシュされた値を使用します。このキャッシュは、ビジネス用語でコードまたは参照テーブルとしても知られる、ルックアップテーブルを使用するクエリーに対する応答時間を加速します。
LOOKUP(codeTable, returnColumn, keyColumn, keyValue)
LOOKUP(codeTable, returnColumn, keyColumn, keyValue)
lookup テーブル codeTable で、keyColumn に値 keyValue がある行を見つけ、一致する keyValue が見つからない場合は、関連付けられた returnColumn 値または null を返します。codeTable はターゲットテーブルの完全修飾名である文字列リテラルである必要があります。returnColumn および keyColumn も文字列リテラルで、codeTable の対応する列名と一致させる必要があります。keyValue には、keyColumn のデータタイプに一致する必要がある任意の式を指定できます。return datatype matches that of returnColumn.
国コード検索
lookup('ISOCountryCodes', 'CountryCode', 'CountryName', 'United States')
lookup('ISOCountryCodes', 'CountryCode', 'CountryName', 'United States')
ISOCountryCodes テーブルを使用して、国名を ISO 国コードに翻訳します。1 列の CountryName は keyColumn を表します。次の列の CountryCode は、国の ISO コードを含む returnColumn を表します。そのため、ここで lookup 機能を使用すると CountryName が提供されます。これは、上記の 'United States' として示され、応答に CountryCode の値を想定しています。
この関数を codeTable、returnColumn、および keyColumn の組み合わせで呼び出すと、Data Virtualization System は結果をキャッシュします。Data Virtualization System は、この検索テーブルに後でアクセスされるすべてのセッションで、このキャッシュをすべてのクエリーに使用します。通常、更新対象となるデータの lookup 機能を使用することや、行ベースのセキュリティーや列マスク効果を含むセッション/ユーザー固有の場合があります。Lookup 関数でのキャッシュに関する詳細は、『キャッシング ガイド』を参照 してください。
keyColumn には、対応する codeTable の一意の値が含まれることが予想されます。keyColumn に重複値が含まれる場合、例外が発生します。