全部產品
Search
文件中心

ApsaraDB for OceanBase:虛擬列

更新時間:Jul 01, 2024

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