UDTに属性を追加するたびに、システムは関連するオブザーバーおよびミュテーター メソッドを自動的に生成します。
- 指定するUDTはSTRUCTURED型UDTでなければなりません。
- 指定するUDTは、他のいかなるデータベース オブジェクトから参照されてもなりません。
- 任意ののテーブルの列データ型として使用されるなど、他のデータベース オブジェクトによって参照されているUDTに属性を追加することはできません。これには、以下のものが含まれます。
- データベースに、ある1つの列のデータ型が指定のUDTであるテーブルが含まれている場合。
- 属性のうちの1つのデータ型が指定のUDTである、STRUCTURED型UDTがある場合。
- 指定のUDTがユーザー定義キャストで参照されている場合(CREATE CASTとREPLACE CASTを参照)。
- データベースに、指定のUDTを参照するメソッドまたはUDFがある場合。
- UDTに定義された順序付けまたは変換グループ(CREATE ORDERINGおよびREPLACE ORDERINGおよびCREATE TRANSFORMおよびREPLACE TRANSFORMを参照)。
- 追加する属性の名前は、指定されたUDTの既存の属性の名前すべてと異なるものでなければなりません。
- 新しい属性を追加するたびに、データベースは、デフォルトのオブザーバー メソッドとミュテーター メソッドを作成します。
オブザーバーおよびミュテーターのメソッド シグネチャは、指定されたUDTのすべての既存のメソッド シグネチャと異なるものでなければなりません。
- サーバー文字データ セットKANJI1の文字データ型をSTRUCTUREDデータ型に追加することはできません。そのようにすると、データベースはリクエスト側にエラーを返します。
- そのUDTと関連付けられたキャスト。
CREATE CASTとREPLACE CASTを参照してください。
- UDTの順序付け。
CREATE ORDERINGおよびREPLACE ORDERINGを参照してください。
- UDTのデータ変換。
CREATE TRANSFORMおよびREPLACE TRANSFORMを参照してください。
- このUDTをデータ型とする列を持ったテーブル。
CREATE TABLEを参照してください。
- このUDTを使用するSTRUCTURED型UDT。
CREATE TYPE (STRUCTURED形式)を参照してください。
- このUDTをパラメータ データ型として使用するUDFおよびメソッド。
Prestoユーザーの認証情報は、CREATE FUNCTIONおよびREPLACE FUNCTION(外部形式)のコネクタまたはリンク設定のUsernameおよびPasswordプロパティに格納されます。CREATE METHODポートレットのユーザー名とパスワードの設定については、およびを参照してください。
また、STRUCTURED型に属性を追加する前に、あらゆる依存オブジェクトを削除する必要もあります。このタスクを容易にするため、SYSUDTLIBデータベースにあるシステム インストール済みのマクロを使用できます。このマクロはすべての依存関係と、これを削除する順番の一覧を表示します。
そのためには、以下のリクエストを入力します。
EXEC SYSUDTLIB.HelpDependencies('UDT_name');
UDT_nameは、属性セットを追加しようとしているSTRUCTURED型UDTの名前です。
ADD ATTRIBUTEオプションを使用して複数の属性を追加できる機能は、ANSI SQL:2011規格へのTeradata拡張機能です。ANSI SQL規格に準拠するALTER TYPEリクエストで一度に1つずつ属性を追加するか、または、ANSI SQL:2011構文へのTeradata拡張機能を使用して複数の属性を同時に追加することができます。
一度に512を超える属性をSTRUCTURED型UDTに追加することはできません。