本文为您介绍迁移 Oracle 数据库的数据至 OceanBase 数据库 Oracle 租户时,LTER 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);
不支持的范围
不支持修改约束 unique、primary key,会报错。
不支持修改虚拟列,会报错。
不支持修改列 ENCRYPT\DECRYPT,会报错。
不支持
column { VISIBLE | INVISIBLE }
修改列的可见性,会报错。
忽略的属性
说明
如果同步的 DDL 中包含以下属性的定义,则这些属性不会被解析和转换,最终会被忽略。
修改行内约束 check、references,会忽略。
修改 LOB 存储特征,会忽略。
modify_col_substitutable
子句可设置或修改现有对象类型列的可替换性,会忽略该 option。