17.00 - 17.05 - テーブル演算子とテーブル関数との違い - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 詳細トピック

Product
Advanced SQL Engine
Teradata Database
Release Number
17.00
17.05
Release Date
2020年6月
Content Type
プログラミング リファレンス
Publication ID
B035-1184-170K-JPN
Language
日本語 (日本)

テーブル関数とユーザー定義のテーブル演算子の主な違いは、次のとおりです。

  • テーブル関数の入力と出力は、列ではなく、行セットまたはテーブルです。行のデフォルト形式は標識データ形式です。
  • テーブル関数では、行反復子は関数の外部にあり、反復子が関数を呼び出します。

    テーブル演算子では、反復子はコーダーが処理します。テーブル演算子自体は1回だけ呼び出されます。

  • テーブル演算子では、入力列と出力列は、演算子の構文解析を行なうときにテーブル演算子のパーサー関数を呼び出すことによって設定されます。演算子は入力に基づいて出力を決定し、この情報をパーサーに返します。
  • テーブル演算子では、カスタム引数句を使用して多様性を持たせることができます。

    テーブル演算子は再帰処理を行なう必要があるため、テーブル演算子は単純なAMPステップと同じように構築する必要があります。ライターには行の読み取り/書き込みインターフェースが提供されます。

    パーサー関数は標準のスカラーUDFに似ており、1つの引数セット(入力列タイプおよび呼び出しメタデータ)にアクセスし、出力列タイプのリストを返します。ただし、テーブル関数と同様に、出力テーブル形式は、実行時にユーザーが指定することによって設定することもできます。