Teradata Databaseは、次のラージ オブジェクト(LOB)データ型をサポートしています。
- バイナリ ラージ オブジェクト(BLOB)
- 文字ラージ オブジェクト(CLOB)
ALTER TABLEリクエストでこれらのデータ型を指定するときのルールは、他のデータ型に適用されるルールと異なります。以下に、ALTER TABLE文でLOBデータ型を指定するときのルールを説明します。
- BLOB列定義またはCLOB列定義の最大サイズを増やすことはできても、減らすことはできません。
BLOB列定義またはCLOB列定義の最大サイズを増やすには、ADD column_nameオプションを使用し、対象となるLOBデータ型の列の名前を指定します。さらに値を指定すると、Teradata Databaseにより型のサイズがその値に変更されます。例えば、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);
Teradata Databaseでは、列standard_errorがperformance_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のデータ型で指定することはできません。