STRUCTURED型UDTの機能 - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
ft:locale
ja-JP
ft:lastEdition
2021-03-30
dita:mapPath
ja-JP/jpx1556733107962.ditamap
dita:ditavalPath
ja-JP/jpx1556733107962.ditaval
dita:id
B035-1184
Product Category
Software
Teradata Vantage

STRUCTURED型UDTの概念は、CおよびC++プログラミング言語で定義されているstructureコンストラクタとよく似ています。DISTINCT型UDTには、UDTと基礎となる事前定義データ型とに1対1の対応関係がありますが、それとは対照的に、STRUCTURED型UDTは名前付き属性の集まりであり(1つのUDT定義につき512個まで、1つのUDTにつきおよそ合計4,000個の属性に制限されます。それらは、個別のフィールドとしてではなくカプセル化された単位として扱うことができます。STRUCTURED型UDTに512以上の属性を追加する場合の次善策を参照してください。

STRUCTURED型UDTの属性には、事前定義データ型、DISTINCT型UDT、STRUCTURED型UDTのどれでも含めることができます。STRUCTURED型UDTのカプセル化では、データ型内部の属性を一部または全部変更するだけでよく、そのデータ型のデータにアクセスするアプリケーションを変更する必要はありません。

STRUCTURED型UDTデータを扱う場合には、使用できる操作とメソッド タイプに以下の制限があります。
STRUCTURED型UDTを作成すると、システムはUDTの各属性に対して以下のインスタンス メソッド タイプを自動的に生成します。
  • オブザーバー
  • ミュテーター

これら2つのタイプのインスタンス メソッドを使用して、属性から情報を取得したり(オブザーバー)、属性内の情報を更新したり(ミュテーター)することができます。

ユーザー定義メソッドを削除または置き換えることができます。ALTER TYPEREPLACE METHODを参照してください。システム生成メソッドは、STRUCTURED型UDT属性の操作に不可欠な固有の構成要素であるため、削除することも置換することもできません。メソッドを削除するには、ALTER TYPE文に適切なDROP METHOD句を指定して実行することが必要です。同様に、ALTER METHOD文で行なえる処理は、メソッドの保護モードのみの操作、またはメソッドの再コンパイルと再リンクです。

ALTER TYPE文を使用すると、既存のSTRUCTURED型UDTへ新しい属性を追加したり、既存の属性を削除したりできます。

属性を削除すると、システムは削除した各属性に関連付けられているオブザーバー メソッドとミュテーター メソッドも削除します。

属性を追加すると、システムは追加した各属性をサポートする適切なオブザーバー メソッドとミュテーター メソッドを自動的に生成します。

Teradata Databaseは、STRUCTURED型UDTの継承をサポートしていません。