17.10 - ラージ オブジェクト データ型に関するルールと制約事項 - 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
日本語 (日本)
Vantageは、次のラージ オブジェクト(LOB)データ型をサポートしています。
  • バイナリ ラージ オブジェクト(BLOB)
  • 文字ラージ オブジェクト(CLOB)
ALTER TABLEリクエストでこれらのデータ型を指定するときのルールは、他のデータ型に適用されるルールと異なります。以下に、ALTER TABLE文でLOBデータ型を指定するときのルールを説明します。
  • BLOB列定義またはCLOB列定義の最大サイズを増やすことはできても、減らすことはできません。

    BLOB列定義またはCLOB列定義の最大サイズを増やすには、ADD column_nameオプションを使用し、対象となるLOBデータ型の列の名前を指定します。さらに値を指定すると、Vantageにより型のサイズがその値に変更されます。例えば、standard_errorというテーブルのperformance_dataというCLOB列の最大サイズを2倍、つまり524,288,000文字から1,048,576,000文字に変更する場合を考えます。standard_errorのCLOBデータ型のサイズを1,048,576,000文字に増やすには、以下のALTER TABLEリクエストを使用します。

    ALTER TABLE performance_data
    ADD standard_error CLOB(1048576000);
    Vantageでは、列standard_errorperformance_dataにすでに存在することが認識されているため、ADDオプションを使用しても、standard_errorを追加するのではなく変更するものと解釈されます。
  • BLOB列またはCLOB列に対して変更できるのは、以下の列属性に限定されます。
    • NULL
    • NOT NULL

      その列のテーブル内の行にnullが存在する場合は、属性をNULLからNOT NULLに変更できません。

    • TITLE
    • FORMAT

      tdlocaledef.txtファイルを変更してtparesetコマンドを発行する場合、新しい形式文字列設定は、リセットの後に作成されるテーブルにのみ影響を与えます。既存のテーブルの列は、変更のためにALTER TABLEリクエストを実行しない限り、引き続きDBC.TVFieldsにある既存の形式文字列を使用します。

  • 1つの実テーブル定義につき最大で32のBLOB列とCLOB列を追加できます。
  • テーブルに32のBLOB列またはCLOB列(あるいはその組み合わせ)がすでに存在している場合、32の既存のBLOB列またはCLOB列の1つを削除するALTER TABLEリクエストでそのテーブルに別のBLOB列またはCLOB列を追加することはできません。

    新しいBLOB列またはCLOB列を追加するには、ALTER TABLEリクエストを使って既存のBLOB列またはCLOB列を削除した後、別のALTER TABLEリクエストを使って追加を行なう必要があります。

  • BLOB列またはCLOB列は実テーブルから削除できます。

    実テーブルからすべてのBLOB列またはCLOB列を削除すると、そのテーブルは他のすべてのBLOB制約またはCLOB制約から解放されます。

  • 制約定義をBLOB列またはCLOB列に対して定義することも、制約定義でBLOB列またはCLOB列を参照することもできません。
  • プライマリ インデックス範囲のstart_expressionまたはend_expressionで、式または参照される列をBLOBまたはCLOBのデータ型で指定することはできません。