次のように、JSON型の列を含むテーブルを作成したり、JSON型の列を追加、削除、名前変更してテーブルを変更できます。
- JSON型でUDT型で許可されている同じCREATE TABLEまたはALTER TABLEオプションを指定することができます。
- CREATE TABLE文を使用して、1つ以上のJSON型列を含むテーブルを作成できます。JSON型の列をインデックス定義で使用することはできません。
- ALTER TABLE文を使用して、JSON型の列の追加、削除、名前変更を行なうことができます。
- ALTER TABLEを使用して、以下の制限を受けるJSON列の最大長とインライン ストレージ長を変更できます。
- 既存のJSON列型がLOB型の場合は、最大長のみより大きな値に変更できます。
- 既存のJSON列型が非LOB型の場合は、新たに変更されたデータ型が非LOB型のままになる必要があり、新しい最大長とインライン長の値は古い値よりも大きい必要があります。
- ALTER TABLEを使用して、既存の列のストレージ形式を変更することはできません。
JSON列のストレージ形式を変更する場合は、列を削除して、新しいストレージ形式を指定する列を追加する必要があります。
CREATE TABLEおよびALTER TABLEの詳細については、<Teradata Vantage™ SQLデータ定義言語-構文規則および例、B035-1144>を参照してください。
例: JSON型の列を含むテーブルの作成
この例では、JSONデータを格納する次の列を含むemployeeテーブルを作成します。
- json1は、ユーザー(LATINまたはUNICODE)のデフォルトの文字セットでテキストとしてJSONデータを格納します。
- json2は、BSONストレージ形式を使用してJSONデータを格納します。
- json3は、UNICODEでテキストとしてJSONデータを格納します。
- json4は、UBJSONストレージ形式を使用してJSONデータを格納します。
- json5は、ユーザーのデフォルトの文字セットでテキストとしてJSONデータを格納します。
CREATE TABLE employee ( id INTEGER, json1 JSON(20), json2 JSON(25) STORAGE FORMAT BSON, json3 JSON(30) CHARACTER SET UNICODE, json4 JSON(1000) STORAGE FORMAT UBJSON, json5 JSON(5000));
例: テーブルへのJSON型の列の追加
次のALTER TABLE文は、jsonTableテーブルに3つのJSON型の列を追加します。
CREATE TABLE jsonTable(id INTEGER); ALTER TABLE jsonTable ADD j1 JSON; ALTER TABLE jsonTable ADD j2 JSON STORAGE FORMAT BSON; ALTER TABLE jsonTable ADD j3 JSON STORAGE FORMAT UBJSON;
例: 最大長とインライン長の変更
CREATE TABLE jsonTable (id INTEGER, /* non-LOB */ jsn1 JSON(1000) CHARACTER SET LATIN, /* LOB */ jsn2 JSON(1M) INLINE LENGTH 30000 CHARACTER SET LATIN);
ALTER TABLE jsonTable ADD jsn1 JSON(2000); ALTER TABLE jsonTable ADD jsn2 JSON(2M) INLINE LENGTH 30000 CHARACTER SET LATIN;