UDTの順序付けは、同じUDTの2つの値を関係演算子を使って比較する方法を指定します(<Teradata Vantage™ - SQLデータ操作言語、B035-1146>を参照)。さらにシステムは、グループ化、順序付け、ソート、および固有性の判別など、他の比較関連操作の順序付け定義も使用します。
順序付けは、CREATE ORDERING文によってUDTと関連付けられます。開発するすべてのUDTに対して順序付けを定義する必要があります。その定義を済ませてからでないと、それを使用して任意のテーブルの任意のデータ型を定義することができません。順序付けを作成する前に何らかの形でUDTを使おうとすると、システムはリクエスト側にエラーを返します。
完了するために順序付け定義に依存しているSQL操作は多数あります。たとえば、UDTを次の操作のいずれかで使用するには、そのUDTに順序付けが必要です。
- 比較演算子を持つWHERE句
- [NOT] BETWEEN … AND
- [NOT] IN
- GROUP BY
- ORDER BY
- SELECT DISTINCT
- EXCEPTおよびMINUSセット演算子
- INTERSECT集合演算子
- UNION集合演算子
- COUNT (DISTINCT UDT_column)
- CREATE TABLE(テーブルにUDT型の列が含まれる場合)
UDTの種類 | 順序付け機能 |
---|---|
DISTINCT | システムによって自動生成されます。 これはソースのデータ型がLOBの場合にはあてはまりません。その場合、適切な外部ルーチンとCREATE ORDERING文を併用することにより、LOBの順序付けを明示的に作成する必要があります。 システム生成の順序付けセマンティクスが適切な場合、CREATE ORDERING文を使用して明示的な順序付け機能を定義する必要はありません。 アプリケーションが別のあるいはより高度な順序付けセマンティクスを必要とする場合は、CREATE ORDERINGを使って明示的な順序付け機能を指定することができます。 |
STRUCTURED | CREATE ORDERING文を使用した明示的な定義が必要です。 |