テーブル関数は、複数行のリレーショナル テーブルを返す(1度に1つの行を呼び出し元のSELECTリクエストに返す)ユーザー定義関数です。テーブルの構造は、次のいずれかの方法で返されるように定義します。
- 関数を実行する前に返される列数が分かっている場合は、CREATE TABLE文を使用して永続テーブルの構造を定義するのと同じように、構成要素列名とそれぞれのデータ型を指定して、戻されるテーブルの構造を定義しますCREATE TABLEと<Teradata Vantage™ - SQLデータ定義言語-構文規則および例、B035-1144>を参照してください。
列名の完全セットとそれに伴うデータ型は、関数が呼び出し側に戻すテーブルの構造を定義します。
指定した列の1つがLOBデータ型の場合、それとは別に少なくとも1つの非LOB列を定義する必要があります。
各列名は、他のオブジェクト識別子と同じ制限により、最大128のUNICODE文字に制限されます。オブジェクト命名ルールの詳細については、<Teradata Vantage™ - SQLの基本、B035-1141>を参照してください。
- 関数を実行する前に返される列の数がわからない場合、TABLE VARYING COLUMNS句を使用して戻りテーブル構造を定義し、返される出力列の最大許容数を指定します。指定した制限に達すると、システムは戻りテーブル列の組み込みを停止します。
テーブル関数の静的形式と動的形式に対して、指定できる最大列数は2,048です。
返されるテーブルは通常、固有のオペレーティング システム ファイル、メッセージ キュー、または入力引数(例えばLOB)などの外部ソースから派生し、意味的には派生テーブルと同じです(<Teradata Vantage™ - SQLデータ操作言語、B035-1146>を参照)。
テーブル関数は呼び出し側の文にテーブル全体を返すのに対して非テーブルUDFは単一のスカラー結果のみを返すという点で、テーブル関数は非テーブルUDFと異なります。