このセクションでは、OceanBaseデータベースのOracleモードとネイティブOracleデータベースの互換性比較情報について説明します。
OceanBaseデータベースは、データ型、SQL機能、データベースオブジェクトなどの基本的な機能において、Oracleデータベースと互換性があります。手続き型言語(Procedural Language、PL)に関しては、ほぼすべての開発機能と互換性があります。また、データベースセキュリティ、バックアップ・リカバリ、高可用性、オプティマイザーなどの高度な機能においても、OceanBaseデータベースは非常に高い互換性を誇り、一部の機能ではOracleデータベースよりも優れています。これにより、OracleデータベースからOceanBaseデータベースへの移行に際して、ユーザーは新しい知識を習得するための時間を大幅に節約でき、スムーズに移行できます。
さらに、OceanBaseデータベースとOracleデータベースは、基盤となるアーキテクチャや製品形態が異なるため、一部の機能ではOceanBaseデータベースが一時的に互換性を持たない、またはOracleデータベースと動作が異なる場合があります。このセクションでは、主に以下のポイントからOceanBaseデータベースとOracleデータベースの互換性を比較します:
SQL データ型
組み込み関数
SQL 構文
手続き型言語
システムビュー
文字セット
照合順序
データベースオブジェクト管理
セキュリティ機能
バックアップ・リカバリ
SQL エンジン
SQL データ型
OceanBaseデータベースは、Oracleデータベースでサポートされているほとんどのデータ型と互換性があります。詳細なサポート情報については、SQL データ型を参照してください。
最適化の観点から、LONG および LONG RAW データ型は古くなりすぎており、OceanBaseデータベースでは現在これらのデータ型をサポートする予定はありません。
組み込み関数
OceanBaseデータベースは、Oracleデータベースでサポートされているほとんどの組み込み関数と互換性があります。詳細なサポート情報については、組み込み関数を参照してください。
SQL構文
OceanBaseデータベースは、OracleデータベースのほとんどのSQL構文をサポートしています。一部の機能が欠けている場合は、構文がサポートされていないというエラーが表示されます。
SELECT
ほとんどのクエリ機能をサポートしています。単一テーブルおよび複数テーブルのクエリ、サブクエリ、内部結合、半結合、外部結合、グループ化、集計、階層クエリ、一般的な確率関数や線形回帰などのデータマイニング関数をサポートしています。
以下の集合演算をサポートしています:
UNION、UNION ALL、INTERSECT、MINUS。EXPLAIN構文を使用して実行計画を確認できます。
INSERT
単一行および複数行のデータ挿入をサポートし、指定したパーティションへのデータ挿入もサポートしています。
INSERT INTO ... SELECT ...ステートメントをサポートしています。単一テーブルおよび複数テーブルへのデータ挿入をサポートしています。
UPDATE
単一列および複数列のデータ更新をサポートしています。
サブクエリを使用したデータ更新をサポートしています。
集合更新をサポートしています。
DELETE
- 単一テーブルおよび複数テーブルの削除をサポートしています。
TRUNCATE
- 指定したテーブルのデータを完全に削除することをサポートしています。
並列クエリ
Oracleデータベースに準拠した並列クエリをサポートしています。
OceanBaseデータベースはAuto DOP機能をサポートしており、
Hint/Session変数を使用して手動でDOPを指定することもできます。並列DMLをサポートしています。
Hint
OceanBaseデータベースはHint構文の使用をサポートしています。Hintの詳細については、Hintを参照してください。
マテリアライズドビュー
CREATE MATERIALIZED VIEW(マテリアライズドビューの作成)DROP MATERIALIZED VIEW(マテリアライズドビューの削除)
マテリアライズドビューのログ
CREATE MATERIALIZED VIEW LOG(マテリアライズドビューのログの作成)説明
OceanBaseデータベースでは、
CREATE MATERIALIZED VIEW LOG構文のwith_clause(PRIMARY KEY、ROWID、SEQUENCE)のデフォルト動作がOracleデータベースと互換性がありません。DROP MATERIALIZED VIEW LOG(マテリアライズドビューのログの削除)。
マテリアライズドビュー
CREATE MATERIALIZED VIEW(マテリアライズドビューの作成)構文において、更新モードとしてON COMMITおよびON STATMENTモードは現在サポートされていません。DROP MATERIALIZED VIEW(マテリアライズドビューの削除)構文において、PRESERVE TABLE句は現在サポートされていません。
マテリアライズドビューのログ
CREATE MATERIALIZED VIEW LOG(マテリアライズドビューのログの作成)構文において:ASYNCHRONOUS句(クリアを非同期で実行するためのもの)は現在サポートされていません。EXCLUDING NEW VALUES句を使用すると、エラーが発生します。- パーティションは現在サポートされていません。
手続き型言語
OceanBaseデータベースは、OracleデータベースのPL機能の大部分と互換性があります。PL機能の詳細については、PLリファレンスを参照してください。
OceanBaseデータベースが主にサポートするPL機能は以下のとおりです:
データ型
プロセス制御
集合とレコード(多次元集合は現在サポートされていません)。
静的SQL
動的SQL
サブプロシージャ
トリガー
例外処理
パッケージ
パフォーマンス最適化
カスタムデータ型
PLシステムパッケージ。
DBMS_CRYPTO、DBMS_DEBUG、DBMS_LOB、DBMS_LOCK、DBMS_METADATA、DBMS_OUTPUT、DBMS_RANDOM、DBMS_SQL、DBMS_XA、UTL_I18N、UTL_RAWなどが含まれます。PLラベルセキュリティパッケージ。
SA_SYSDBA、SA_COMPONENTS、SA_LABEL_ADMIN、SA_POLICY_ADMIN、SA_USER_ADMIN、SA_SESSIONなどが含まれます。
OceanBaseデータベースは、NOCOPYパラメータの動作を実装する際、Oracleデータベースと互換性の違いがあります:
基本データ型と純粋OUT属性を持つ複合データ型パラメータについて、Oracleデータベースの参照渡し動作とは互換性がありません。
IN OUT属性を持つ複合データ型パラメータについて、OceanBaseデータベースはOracleデータベースの参照渡し動作と互換性があります。
OceanBaseデータベースは、現在以下のPL機能をサポートしていません:
- 条件付きコンパイル
システムビュー
OceanBaseデータベースは、Oracleデータベースの一部のシステムビューと互換性があります。互換性のあるビューの詳細なリストについては、システムビューを参照してください。より多くのシステムビューのフィールド説明については、システムビュー概要を参照してください。
文字セット
OceanBaseデータベースのOracleモードでサポートされている文字セットは以下のとおりです:
- binary
- utf8mb4
- gbk
- utf16
- gb18030
- latin1
- gb18030_2022
- ascii
- tis620
- utf16le
- sjis
- hkscs
- hkscs31
- dec8
- gb2312
- ujis
- euckr
- eucjpms
- cp932
- cp850
- hp8
- macroman
- swe7
照合順序
OceanBaseデータベースのOracleモードでサポートされているソート方法は、次の表のとおりです。
照合順序 |
所属文字セット |
説明 |
|---|---|---|
| utf8mb4_general_ci | utf8mb4 | 汎用ソート規則を使用します。 |
| utf8mb4_bin | utf8mb4 | バイナリソート規則を使用します。 |
| utf8mb4_unicode_ci | utf8mb4 | Unicode照合アルゴリズム(UCA)に基づくソート規則を使用します。 |
| binary | binary | バイナリソート規則を使用します。 |
| gbk_chinese_ci | gbk | 中国語の言語ソート規則を使用します。 |
| gbk_bin | gbk | バイナリソート規則を使用します。 |
| utf16_general_ci | utf16 | 汎用ソート規則を使用します。 |
| utf16_bin | utf16 | バイナリソート規則を使用します。 |
| utf16_unicode_ci | utf16 | Unicode照合アルゴリズム(UCA)に基づくソート規則を使用します。 |
| gb18030_chinese_ci | gb18030 | 中国語の言語ソート規則を使用します。 |
| gb18030_bin | gb18030 | バイナリソート規則を使用します。 |
| latin1_swedish_ci | latin1 | スウェーデン語/フィンランド語のソート規則を使用します。 |
| latin1_german1_ci | latin1 | ドイツ(German)言語環境でのlatin1文字セットのソート規則に使用されます。 |
| latin1_danish_ci | latin1 | デンマーク(Danish)言語環境でのlatin1文字セットのソート規則に使用されます。 |
| latin1_german2_ci | latin1 | ドイツ語環境で、辞書順での文字比較が必要なアプリケーションシナリオに適しています。 |
| latin1_general_ci | latin1 | 大小文字を区別せず、アクセント記号をサポートするシナリオ、例えば一部のヨーロッパ言語のデータベース設計に使用されます。 |
| latin1_general_cs | latin1 | 大小文字を区別する汎用ソート規則で、複数の言語(例:西ヨーロッパ言語)をサポートします。 |
| latin1_spanish_ci | latin1 | スペイン(Spanish)言語環境のソート規則に使用されます。 |
| latin1_bin | latin1 | latin1バイナリソート規則を使用します。 |
| gb18030_2022_bin | gb18030_2022 | バイナリソート規則を使用します。Oracleモードでこの文字セットのデフォルトの照合順序です。 |
| gb18030_2022_chinese_ci | gb18030_2022 | ピンインソート規則を使用します。大文字と小文字は区別しません。 |
| gb18030_2022_chinese_cs | gb18030_2022 | ピンインソート規則を使用します。大文字と小文字は区別します。 |
| gb18030_2022_radical_ci | gb18030_2022 | 部首・筆順ソート規則を使用します。大文字と小文字は区別しません。 |
| gb18030_2022_radical_cs | gb18030_2022 | 部首・筆順ソート規則を使用します。大文字と小文字は区別します。 |
| gb18030_2022_stroke_ci | gb18030_2022 | 筆順ソート規則を使用します。大文字と小文字は区別しません。 |
| gb18030_2022_stroke_cs | gb18030_2022 | 筆順でソートします。大文字と小文字を区別します。 |
| ascii_bin | ascii | バイナリ順でソートします。 |
| ascii_general_ci | ascii | アルファベットに基づく大文字と小文字を区別しないソート規則を使用します。大文字と小文字の違いを無視し、大文字と小文字を同じ文字と見なします。 |
| tis620_bin | tis620 | バイナリ順でソートします。 |
| tis620_thai_ci | tis620 | タイ語のソート規則を使用し、大文字と小文字を区別しません。 |
| gb2312_chinese_ci | gb2312 | GB2312文字セットを使用し、中国語のソート規則に従って大文字と小文字を区別しないソートを行います。 |
| gb2312_bin | gb2312 | GB2312文字セットを使用し、バイナリ順に従って大文字と小文字を区別するソートを行います。 |
| ujis_japanese_ci | ujis | UJIS文字セットを使用し、日本語のソート規則に従って大文字と小文字を区別しないソートを行います。 |
| ujis_bin | ujis | UJIS文字セットを使用し、バイナリ順に従って大文字と小文字を区別するソートを行います。 |
| euckr_korean_ci | euckr | EUCKR文字セットを使用し、韓国語のソート規則に従って大文字と小文字を区別しないソートを行います。 |
| euckr_bin | euckr | EUCKR文字セットを使用し、バイナリ順に従って大文字と小文字を区別するソートを行います。 |
| eucjpms_japanese_ci | eucjpms | EUCJPMS文字セットを使用し、日本語のソート規則に従って大文字と小文字を区別しないソートを行います。 |
| eucjpms_bin | eucjpms | EUCJPMS文字セットを使用し、バイナリ順に従って大文字と小文字を区別するソートを行います。 |
| cp932_japanese_ci | cp932 | CP932文字セットを使用し、日本語のソート規則に従って大文字と小文字を区別しないソートを行います。 |
| cp932_bin | cp932 | CP932文字セットを使用し、バイナリ順に従って大文字と小文字を区別するソートを行います。 |
| cp850_general_ci | cp850 | CP850文字セットを使用し、汎用ソート規則に従って大文字と小文字を区別しないソートを行います。 |
| cp850_bin | cp850 | CP850文字セットを使用し、バイナリ順に従って大文字と小文字を区別するソートを行います。 |
| hp8_english_ci | hp8 | HP8文字セットを使用し、英語のソート規則に従って大文字と小文字を区別しないソートを行います。 |
| hp8_bin | hp8 | HP8文字セットを使用し、バイナリ順に従って大文字と小文字を区別するソートを行います。 |
| macroman_general_ci | macroman | MacRoman文字セットを使用し、汎用ソート規則に従って大文字と小文字を区別しないソートを行います。 |
| macroman_bin | macroman | MacRoman文字セットを使用し、バイナリ順に従って大文字と小文字を区別するソートを行います。 |
| swe7_swedish_ci | swe7 | SWE7文字セットを使用し、スウェーデン語のソート規則に従って大文字と小文字を区別しないソートを行います。 |
| swe7_bin | swe7 | SWE7文字セットを使用し、バイナリ順に従って大文字と小文字を区別するソートを行います。 |
データベースオブジェクトの管理
テーブル管理
テーブルの作成:テーブルの作成をサポートし、作成時にパーティション、制約などの情報を指定できます。テーブル作成の詳細な構文については、CREATE TABLEを参照してください。
ベーステーブルの変更:
ALTER TABLEステートメントを使用して、列の追加、削除、変更、制約の追加・削除、パーティションの追加・削除・変更をサポートします。テーブル変更の詳細な構文については、ALTER TABLEを参照してください。ベーステーブルの削除:テーブルの削除と、それに伴う制約のカスケードをサポートします。テーブル削除の詳細な構文については、DROP TABLEを参照してください。
制約
CHECK、UNIQUE、NOT NULL制約をサポートします。PRIMARY KEY制約をサポートします。FOREIGN KEY制約をサポートします。ALTER TABLEステートメントを使用して、CHECK、PRIMARY KEY、FOREIGN KEY、NOT NULL制約を追加することをサポートします。カスケード中の
SET NULLをサポートします。
パーティションサポート
パーティション、テンプレート型および非テンプレート型のサブパーティションをサポートします。
Hash、Range、List、Compositeなどのパーティショニング方式をサポートします。
ローカルインデックスとグローバルインデックスをサポートします。
パーティションのメンテナンス操作について:
パーティションテーブルでは、パーティションの追加、削除、Truncateをサポートします。
テンプレート型サブパーティションテーブルでは、パーティションの追加、削除をサポートします。非テンプレート型サブパーティションテーブルでは、パーティションの追加、削除、Truncate、サブパーティションの追加、削除、Truncateをサポートします。
パーティションの詳細な説明と使用方法については、パーティションの概要を参照してください。
インデックス管理
OceanBaseデータベースは、BTreeインデックス、関数インデックス、空間インデックスのみをサポートします。
インデックスの作成と削除をサポートします。
ビュー管理
シンプルビューまたは複雑ビューの作成をサポートします。
ビューの削除をサポートします。
SELECTステートメントをサポートします。DMLステートメントをサポートします。
シーケンス管理
シーケンスの作成をサポートします。
シーケンスの変更をサポートし、値のリセット機能も含まれます。
シーケンスの削除をサポートします。
シノニム
テーブル、ビュー、シノニム、シーケンスなどのオブジェクトに対するシノニムの作成をサポートします。
公共シノニムの作成をサポートします。
トリガー管理
トリガーの作成をサポートします。
トリガーの変更をサポートします。
トリガーの削除をサポートします。
データベース接続
OceanBaseデータベース間の読み取りおよび書き込み操作をサポートします。
OceanBaseデータベースからOracleデータベースへの読み取りおよび書き込み操作をサポートします。
制約
UNIQUE制約のDISABLE操作はサポートされていません。
パーティションのサポート
- テンプレート型のサブパーティションテーブルでは、サブパーティションの追加および削除を現在サポートしていません。
インデックス管理
- ビットマップや逆順などのインデックスタイプはサポートされていません。
- UPDATE GLOBAL INDEX を使用してインデックスを再構築する間は、インデックスは利用できません。
更新可能なビュー
WITH CHECK OPTION 句はサポートされていません。
セキュリティ機能
OceanBaseデータベースは豊富なセキュリティ機能を実装しています。
権限管理
Oracleデータベースのほとんどのシステム権限と互換性があります。OceanBaseデータベースのOracleモードでサポートされている権限については、Oracleモードの権限分類を参照してください。
権限の付与や取り消しなど、一般的なオブジェクト権限管理をサポートします。
ホワイトリストポリシーをサポートし、ネットワークのセキュアアクセス制御を実現します。
システム定義ロールとユーザー定義ロールをサポートします。
認証
Oracleモードは、Oracleデータベースのパスワードポリシーと互換性があります。
ユーザーロックおよびロック解除機能をサポートします。
透過的データ暗号化
OracleデータベースのTDE機能と互換性があります。データはストレージデバイスに書き込む前に自動的に暗号化され、読み取り時に自動的に復号化されます。
監査
Oracleデータベースの標準監査をサポートします。
ステートメント監査とオブジェクト監査のタイプをサポートします。
オブジェクト監査は現在、テーブル、シーケンス、関数、パッケージオブジェクトのみをサポートしています。
監査結果はファイルまたは内部テーブルに保存することができます。
監査関連の各種システムビューをサポートします。
ラベルセキュリティ
Oracleデータベースのラベルセキュリティ(Label Security)機能と互換性があります。
レベル次元をサポートします。
SSLによる伝送路暗号化
クライアントとOceanBaseデータベースサーバー間の伝送路暗号化、およびOceanBaseデータベースノード間のデータ転送暗号化をサポートします。
SSL片方向認証、X509双方向認証に加え、指定暗号アルゴリズム認証、指定発行者認証、指定SSL主体認証などの特殊な双方向認証もサポートします。
監査
統一監査とFGA細粒度監査はサポートされていません。
権限監査とネットワーク監査はサポートされていません。
監査データの変更、上書き、削除はサポートされていません。
ラベルセキュリティ
- CompartmentおよびGroupの次元はサポートされていません。
バックアップとリカバリ
OceanBaseデータベースはバックアップとリカバリの機能も提供しています。OceanBaseデータベースの物理バックアップとリカバリの機能については、バックアップとリカバリの概要を参照してください。
NFS、Alibaba Cloud OSS、AWS S3およびS3プロトコル互換のオブジェクトストレージ(例:Huawei OBS、Google GCS、Tencent Cloud COS)をバックアップメディアとしてサポートします。
バックアップの自動および手動クリーンアップをサポートします。
バックアップまたはアーカイブのクリーンアップを指定して実行できます。
テナントレベルでのバックアップとリストアをサポートします。
データベースレベルおよびテーブルレベルでのリストアをサポートします。
指定したパスへのリストアをサポートします。
ログアーカイブとバックアップデータの検証をサポートします。
クラスタレベルのバックアップとリストアはサポートされていません。
テーブルレベルのバックアップはサポートされていません。
ログアーカイブの圧縮はサポートされていません。
指定パスへのバックアップはサポートされていません。
バックアップのバックアップはサポートされていません。
SQLエンジン
OceanBaseデータベースのSQLエンジンは、Oracleデータベースのほとんどの機能と互換性があります。SQLエンジンの詳細については、SQLチューニングガイドを参照してください。
クエリのリライト機能をサポートします。
プリコンパイル済みステートメント機能をサポートします。
コストベースのオプティマイザー機能をサポートします。
実行計画の生成と表示(
EXPLAIN)機能をサポートします。実行計画キャッシュ機能をサポートします。
実行計画の高速パラメータ化機能をサポートします。
実行計画のバインディング機能をサポートします。
Optimizer Hint機能をサポートします。
アダプティブカーソルがACS機能を共有することをサポートします。
実行計画管理(SPM)機能をサポートします。
估算器機能はサポートされていません。
実行計画分離機能はサポートされていません。
式統計ストレージ(ESS)機能はサポートされていません。
近似クエリ処理機能はサポートされていません。