普通列

本文为您介绍迁移 Oracle 数据库的数据至 OceanBase 数据库 Oracle 租户时,CREATE TABLE DDL 普通列的支持转换范围。

总览

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
  ]
  
identity_clause:
GENERATED [ ALWAYS | BY DEFAULT [ ON NULL ] ] AS IDENTITY [ ( identity_options ) ]

encryption_spec:
[ USING 'encrypt_algorithm' ][ IDENTIFIED BY password ][ 'integrity_algorithm' ][ [ NO ] SALT ]

支持的范围

  • 支持列类型定义 column_name datatype,转化详情请参见 数据类型转换

  • 支持指定 VISIBLE | INVISIBLE 属性,缺省的情况为 VISIBLE,不会显示声明 VISIBLE。

  • 支持 DEFAULT expr 定义默认值。

  • inline_constraint | inline_ref_constraint 定义行内约束子句,详情请参见 约束

忽略的属性

说明

如果同步的 DDL 中包含以下属性的定义,则这些属性不会被解析和转换,最终会被忽略。

  • 不支持列排序规则定义 COLLATE column_collation_name,会忽略该子句。

  • 不支持指定 SORT 属性,会忽略该属性。

  • 不支持 DEFAULT ON NULL expr 子句定义默认值,会忽略该子句。示例如下:

    CREATE TABLE T (C NUMBER DEFAULT ON NULL 1);
  • 不支持 identity_clause 子句定义自增列,会忽略该子句。示例如下:

    CREATE TABLE t (id NUMBER GENERATED BY DEFAULT AS IDENTITY (start with 100 increment by 10));
  • 不支持 ENCRYPT encryption_spec 子句定义列加密属性,会忽略该子句。