このトピックでは、Oracle データベースから OceanBase Database の Oracle テナントへのデータ移行中に、列属性を変更するための ALTER TABLE DDL 操作のサポートされている変換範囲について説明します。
構文
modify_column_clauses:
MODIFY
{ ( modify_col_properties | modify_virtcol_properties
[, modify_col_properties | modify_virtcol_properties ]... )
| ( modify_col_visibility [, modify_col_visibility ]... )
| modify_col_substitutable
}
modify_col_properties:
column [ datatype ]
[ COLLATE column_collation_name ]
[ DEFAULT [ ON NULL ] expr | identity_clause | DROP IDENTITY ]
[ { ENCRYPT encryption_spec } | DECRYPT ]
[ inline_constraint ... ]
[ LOB_storage_clause ]
[ alter_XMLSchema_clause ]
modify_virtcol_properties:
column [ datatype ]
[ COLLATE collumn_collation_name ]
[ GENERATED ALWAYS ] AS (column_expression) [ VIRTUAL ]
evaluation_edition_clause [ unusable_editions_clause ]
modify_col_visibility:
column { VISIBLE | INVISIBLE }
modify_col_substitutable:
COLUMN column
[ NOT ] SUBSTITUTABLE AT ALL LEVELS
[ FORCE ]サポートされている操作
列型の変更がサポートされています。データ型マッピングの詳細については、「データ型変換」をご参照ください。サンプルコード:
ALTER TABLE T MODIFY C1 CHAR;NOT NULL 制約と
DEFAULT VALUE制約の変更がサポートされています。サンプルコード:ALTER TABLE T MODIFY C1 NUMBER DEFAULT 1 NOT NULL;一度に複数の列を変更することがサポートされています。サンプルコード:
ALTER TABLE T MODIFY (C1 CHAR,C2 CHAR);
サポートされていない操作
一意キー制約とプライマリキー制約の変更はサポートされていません。これらの操作を実行すると、エラーが返されます。
仮想列の変更はサポートされていません。この操作を実行すると、エラーが返されます。
列の ENCRYPT\DECRYPT 属性の変更はサポートされていません。この操作を実行すると、エラーが返されます。
column { VISIBLE | INVISIBLE }オプションを使用した列の可視性の変更はサポートされていません。この操作を実行すると、エラーが返されます。
無視される句とオプション
説明
同期された DDL 文で指定された場合、次の句とオプションは無視され、解決または変換されません。
CHECK 制約と REFERENCES インライン制約を変更するためのオプション。
LOB ストレージ特性を変更するためのオプション。
列オブジェクト型の置換可能性を設定または変更するための
modify_col_substitutableオプション。