本文為您介紹遷移 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。