17.00 - 17.05 - UDMの種類 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQL外部ルーチン プログラミング

Product
Advanced SQL Engine
Teradata Database
Release Number
17.00
17.05
Published
2020年6月
Content Type
プログラミング リファレンス
Publication ID
B035-1147-170K-JPN
Language
日本語 (日本)
Teradata Databaseでは、以下の2種類のUDMがサポートされています。
  • インスタンス
  • コンストラクタ

インスタンス メソッド

インスタンス メソッドは、DISTINCT型またはSTRUCTURED型UDTの特定のインスタンスに対して作用します。例えば、areaというインスタンス メソッドは、名前がcircleで、属性がxy、およびradiusのSTRUCTURED型UDTの面積を計算して戻します。

SQL式内の列名を、UDTに対するインスタンス メソッドの呼び出しに置き換えることができます。Teradata Databaseでその式が評価される際には、UDMが呼び出されます。

また、インスタンス メソッドにより、DISTINCT型またはSTRUCTURED型のUDTに対する変換、整列、およびキャストの機能を提供することもできます。この種のインスタンス メソッドを直接呼び出すことはありません。この機能は、UDTが関係する特定の操作においてTeradata Databaseによって使用されます。

ユーザー Teradata Databaseによって使用される機能
CAST関数を使用するなどして、そのUDTを事前定義データ型または別のUDTに変換する場合 キャスト
別のUDTまたは事前定義型からそのUDTへ変換する場合
ORDER BY句を使用するなどにより2つのUDTを比較する場合 整列
サーバーからUDTをエクスポートする場合 変換

Teradata Databaseでは、サーバーにUDTをインポートする際にも変換機能が使用されます(USING修飾子を使用した場合など)。ただし、実装されるのはUDMではなく、常にUDFです。

UDT列のあるテーブルを作成し、その列に対して問合わせを実行するには、変換、整列、およびキャストの機能を提供するUDFまたはインスタンス メソッドが、あらかじめそのUDTに関連付けられていなければなりません。

呼び出し側 結果
DISTINCT 変換、整列、およびキャストの機能を提供するUDFおよびメソッドが、Teradata Databaseによって自動的に生成されます。
STRUCTURED 変換、整列、およびキャストの機能を提供するUDFまたはUDMを、自分で実装する必要があります。

コンストラクタ メソッド

コンストラクタ メソッドは、STRUCTURED型UDTのインスタンスを初期化します。

STRUCTURED型UDTには、それぞれ異なる初期化オプションを提供する複数のコンストラクタ メソッドを含めることができます。

STRUCTURED型UDTのインスタンスをSQL文中で作成するには、コンストラクタ メソッドを呼び出すか、またはNEW式の中でコンストラクタ メソッドを指定します。