ルールと制限を以下に示します。
- UDTを任意のテーブルの列データ型として使用する前に、UDTにtosqlおよびfromsqlの変換機能の定義が必要です。詳細は、<Teradata Vantage™ SQLデータ定義言語 - 構文規則および例、B035-1144>の「CREATE TRANSFORM」を参照してください。
- 列リストにUDTを返す式は、そのUDTの変換グループにfromsqlルーチンがある場合のみ指定できます。システムは、クライアント アプリケーションに返す前に、fromsqlルーチンによって自動的に式をそのUDT値から外部タイプに変換します。
- この点でのDISTINCT型とSTRUCTURED型との唯一の相違点は、Teradata Databaseが、ソース データ型を外部データ型として、fromsqlおよびtosqlの両方のルーチンとともに、変換グループを固有タイプのためにデフォルトで生成しますが、STRUCTURED型の場合は変換グループを明示的に作成しなければならないということです。UDTの変換グループを作成する方法の詳細については、<Teradata Vantage™ SQLデータ定義言語 - 構文規則および例、B035-1144>の「CREATE TRANSFORM」を参照してください。
- テーブル参照がないSELECT文で、その選択リストにUDT式を含むものを実行し、NEW式を使用してUDTリテラル宣言を使用することでそのUDTに対して変換機能を宣言していない場合、リクエストはアボートし、システムはエラーを返します。NEW式の詳細は、<Teradata Vantage™ SQL演算子およびユーザー定義関数、B035-1210>を参照してください。