本文为您介绍迁移 Oracle 数据库的数据至 OceanBase 数据库 Oracle 租户时,CREATE TABLE DDL 虚拟列的支持转换范围。
总览
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 ]... ]
evaluation_edition_clause:
EVALUATE USING { CURRENT EDITION | EDITION edition | NULL EDITION }
unusable_editions_clause:
[ UNUSABLE BEFORE { CURRENT EDITION | EDITION edition } ]
[ UNUSABLE BEGINNING WITH { CURRENT EDITION | EDITION edition | NULL EDITION } ]
支持的范围
支持列类型定义
column_name datatype
,类型转化详情请参见 数据类型转换。支持指定
VISIBLE | INVISIBLE
属性,缺省的情况为 VISIBLE,不会显示声明 VISIBLE。支持
inline_constraint
行内约束,详情请参见 约束。支持虚拟列定义
GENERATED ALWAYS AS column_expression
、column datatype AS column_expression
。示例如下:重要不支持虚拟列定义
GENERATED ALWAYS AS identity
,数据传输结构迁移转换将忽略该虚拟列定义,仅迁移字段名及类型定义。CREATE TABLE T (C1 CHAR, C2 CHAR GENERATED ALWAYS AS (SUBSTR(C1,1,2))); CREATE TABLE T (C1 CHAR, C2 CHAR AS (SUBSTR(C1,1,2)));
忽略的属性
说明
如果同步的 DDL 中包含以下属性的定义,则这些属性不会被解析和转换,最终会被忽略。
不支持列排序规则定义
COLLATE column_collation_name
,该 option 会被忽略。不支持使用
evaluation_edition_clause
子句来指定 Resolver 在解析有版本的 PL/SQL 函数的名称时会搜索的版本。该 option 会被忽略。不支持指定虚拟列表达式不能用于计算一个或多个版本中的查询 unusable_editions_clause 子句,会忽略该 option。