ルールと制限を以下に示します。
- テーブル関数はFROM句にのみ含めることができます。FROM句を参照してください。
テーブル関数は派生テーブルのように処理されます。
- SELECT文の構文では、実行時にそのTABLE (function_name RETURNS ... table_name)句に返す列数の暗黙的な指定をサポートします。
- 可変の出力列数がないテーブル関数を参照する場合、システムはDBC.TVFieldsから明示的な出力列の定義を取得します。
ただし、動的な列数を出力するテーブル関数を参照する場合、RETURNS...table_nameオプションをSELECTリクエストのFROM句で使用して、関数の呼び出しの一部として出力列リストまたは既存のテーブルの名前を指定する必要があります。
SELECT仕様 | 返される列 |
---|---|
出力列名のリスト | リストで指定されている列を関数の出力列として使用 |
既存のテーブルの名前 | そのテーブルの定義からの列を関数の出力列として使用 |
どちらの場合も、そのCREATE FUNCTION(テーブル形式)定義のVARYING COLUMNS maximum_output_columns指定で指定した出力列の定義済み最大数を超える列数を指定することはできません。
<Teradata Vantage™ SQLデータ定義言語 - 詳細トピック、B035-1184>の「CREATE FUNCTION(テーブル形式)」を参照してください。
- 可変列のテーブル関数を呼び出すには、以下を実行します。
- 返す列名とデータ型のペアのリストを指定する。
- 既存のテーブルから返す列を指定する。
同じ結果を返す両方の形式の例については、例: テーブル関数の指定により返される動的行結果を参照してください。
- BLOB AS LOCATORまたはCLOB AS LOCATOR形式を使用してLOB列を指定することはできません。