DISTINCT型UDTの場合とは異なり、システムがSTRUCTURED型UDTに対して順序付け、キャスト、またはデータ変換機能を自動的に生成することはありませ。これらの機能は、CまたはC++外部ルーチンを作成してから、以下のDDL文を使用して適切なキャスト、順序付け、およびデータ変換定義を作成することにより、自分で明示的に設定する必要があります。
- CREATE CAST(CREATE CASTとREPLACE CASTを参照)。
セッション モードの変更については、STRUCTURED型UDTのデフォルトのキャスト機能も参照してください。
- CREATE ORDERING(CREATE ORDERINGおよびREPLACE ORDERINGを参照)。
セッション モードの変更については、STRUCTURED型UDTのデフォルトの順序付け機能も参照してください。
ハッシュ インデックス定義に使用される場合のあるSTRUCTURED型UDTを作成している場合、その順序付け関数がnullを戻さないことを確認する必要があります。Nullが戻されると、Teradata Databaseはリクエストをアボートし、リクエスト側にエラーを返します。
- CREATE TRANSFORM(CREATE TRANSFORMおよびREPLACE TRANSFORMを参照)。
STRUCTURED型UDTのデフォルトのデータ変換グループも参照してください。
作成するすべてのSTRUCTURED型UDTには、必ず明示的な順序付け機能とデータ変換機能を備えつけるSYSUDTLIB。テーブルの列タイプのデータ型としてSTRUCTURED型UDTを指定したものの、そのUDTに順序付けおよびデータ変換機能を作成していない場合には、システムはリクエスト側にエラーを返します。
STRUCTURED型UDTに明示的なキャスト機能を作成することは必須ではないが、STRUCTURED型UDTをUSING修飾子など特定のSQL式で実行したり、FastloadやMultiLoadなどのさまざまなロード操作に関係したりする場合には、キャスト機能を作成することが必要になります。
STRUCTURED型UDTの全機能の使用可能化以降のトピックで、STRUCTURED型UDTの影響を要約し、新しく作成したSTRUCTURED型UDTを列テーブルのタイプとして使用する前にユーザーが明示的に定義する必要がある機能を説明しています。