このトピックでは、Oracle データベースから OceanBase Database の Oracle テナントへのデータ移行中に、列と列属性を追加するための ALTER TABLE DDL 操作のサポートされている変換範囲について説明します。
構文
add_column_clause:
ADD
( {column_definition | virtual_column_definition
[, column_definition | virtual_column_definition] ...
} )
[ column_properties ]
[ ( out_of_line_part_storage [, out_of_line_part_storage]... ) ]
column_definition:
column [ datatype [ COLLATE column_collation_name ] ]
[ SORT ] [ VISIBLE | INVISIBLE ]
[ DEFAULT [ ON NULL ] expr | identity_clause ]
[ ENCRYPT encryption_spec ]
[ { inline_constraint }...
| inline_ref_constraint
]
virtual_column_definition:
column [ datatype [ COLLATE column_collation_name ] ]
[ VISIBLE | INVISIBLE ]
[ GENERATED ALWAYS ] AS (column_expression) [ VIRTUAL ]
[ evaluation_edition_clause ] [ unusable_editions_clause ]
[ inline_constraint [ inline_constraint ]... ]
column_properties:
{ object_type_col_properties
| nested_table_col_properties
| { varray_col_properties | LOB_storage_clause }
[ (LOB_partition_storage [, LOB_partition_storage ]...) ]
| XMLType_column_properties
}...
out_of_line_part_storage:
PARTITION partition
{ nested_table_col_properties | LOB_storage_clause | varray_col_properties }
[ nested_table_col_properties | LOB_storage_clause | varray_col_properties ]...
[ ( SUBPARTITION subpartition
{ nested_table_col_properties | LOB_storage_clause | varray_col_properties }
[ nested_table_col_properties | LOB_storage_clause | varray_col_properties
]...
[, SUBPARTITION subpartition
{ nested_table_col_properties | LOB_storage_clause | varray_col_properties }
[ nested_table_col_properties | LOB_storage_clause | varray_col_properties
]...
]...
)
]サポートされている操作
通常列の追加がサポートされています。詳細については、「通常列」をご参照ください。サンプルコード:
ALTER TABLE T ADD C1 NUMBER;仮想列の追加がサポートされています。詳細については、「仮想列」をご参照ください。サンプルコード:
ALTER TABLE T ADD C1 NUMBER GENERATED ALWAYS AS (C+1);VISIBLE | INVISIBLEオプションを使用した、列への可視性属性の追加がサポートされています。サンプルコード:ALTER TABLE T ADD C1 NUMBER INVISIBLE;NOT NULL制約とDEFAULT VALUEインライン制約の追加がサポートされています。サンプルコード:ALTER TABLE T ADD C1 NUMBER NOT NULL DEFAULT 1;複数列の同時追加がサポートされています。サンプルコード:
ALTER TABLE T ADD (C1 NUMBER, C2 NUMBER, C3 NUMBER); ALTER TABLE T ADD (C1 NUMBER) ADD (C2 NUMBER) ADD (C3 NUMBER);
サポートされていない操作
フィールドタイプを指定しない仮想列の追加はサポートされていません。この操作を実行すると、エラーが返されます。
identity_clause句を使用した自動インクリメント列の定義はサポートされていません。この操作を実行すると、エラーが返されます。
無視される句とオプション
同期された DDL 文で指定された場合、次の句とオプションは無視され、解決または変換されません。
パーティションテーブルの新しい列のストレージ特性を指定するための
out_of_line_part_storageオプション。UNIQUE、PRIMARY KEY、およびCHECKインライン制約を追加するためのオプション。制約ステータスを指定するための
constraint_stateオプション。制約名を指定するための
constraint nameオプション。オブジェクトタイプ、ネストされたテーブル、および VARRAY 列または LOB 列のストレージ特性を変更するための
column_propertiesオプション。