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