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);