17.10 - UDT列のNull処理の推奨技法 - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1184-171K-JPN
Language
日本語 (日本)

null属性をサポートしようとする場合、あるいはnullを返す可能性のあるマップ順序付けルーチンを作成する場合は、その型を指定するCREATE TABLEまたはALTER TABLE文で、そのUDT列にNOT NULL属性を指定する必要があります。

nullが列で許可されていて、UDTに対するマップ順序付けルーチンまたはシステム生成のオブザーバー メソッドのいずれかがnullを返すことができる場合、同一のリクエストに対して返される結果は、クエリーによって異なることがあります。

UDTの順序付けルーチンは列値が等しいかどうかを判別するとともに、ソート操作の照合順序も判別します。

NOT NULL属性をUDT列に対して指定しない場合、以下のオブジェクトは同様に処理されます。

  • NULL列
  • Null属性を含み、マップまたはオブザーバー ルーチンがnullを返すSTRUCTURED型

ある場合にはnullの列が結果セットに返され、別の場合にはnull属性を含んだ非nullのSTRUCTURED型が結果セットに返されます。

以下の単純な例に、テーブル定義でUDTのためにNOT NULL属性を指定する方法を示します。

     CREATE TABLE udtTable (
       id         INTEGER,
       udtColumn  myStructUdtWithNullAttributes NOT NULL);