すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB for OceanBase (Deprecated):列属性の変更

最終更新日:Jan 19, 2025

このトピックでは、Oracle データベースから OceanBase Database の Oracle テナントへのデータ移行中に、列属性を変更するための ALTER 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);

サポートされていない操作

  • 一意キー制約とプライマリキー制約の変更はサポートされていません。これらの操作を実行すると、エラーが返されます。

  • 仮想列の変更はサポートされていません。この操作を実行すると、エラーが返されます。

  • 列の ENCRYPT\DECRYPT 属性の変更はサポートされていません。この操作を実行すると、エラーが返されます。

  • column { VISIBLE | INVISIBLE } オプションを使用した列の可視性の変更はサポートされていません。この操作を実行すると、エラーが返されます。

無視される句とオプション

説明

同期された DDL 文で指定された場合、次の句とオプションは無視され、解決または変換されません。

  • CHECK 制約と REFERENCES インライン制約を変更するためのオプション。

  • LOB ストレージ特性を変更するためのオプション。

  • 列オブジェクト型の置換可能性を設定または変更するための modify_col_substitutable オプション。