C XStream Inの制限事項

XStream Inには制限事項があります。

C.1 インバウンド・サーバーの制限事項

インバウンド・サーバーには制限事項があります。

C.1.1 インバウンド・サーバーではサポートされていないデータ型

インバウンド・サーバーでは一部のデータ型がサポートされません。

インバウンド・サーバーでは、次のデータ型の列でのDML変更の結果を格納している行LCRが適用されません。

  • BFILE

  • ROWID

  • ネストした表

  • Oracle提供型: ANYTYPEANYDATASET、URI型、SDO_TOPO_GEOMETRYSDO_GEORASTERおよびExpression

注意:

XStreamは、可変幅のマルチバイト・キャラクタ・セットのデータベースでは、LONG列をサポートしません。

サポートされていないデータ型の列に関する情報を含む行LCRを適用しようとすると、インバウンド・サーバーでエラーが発生します。また、インバウンド・サーバーでは、次のタイプの表に対するDML変更を適用できません。

  • 一時表

  • サポートされていないデータ型を含むオブジェクト表

インバウンド・サーバーでこのような変更を適用しようとすると、エラーが発生します。インバウンド・サーバーでLCRのエラーが発生すると、LCRを含むトランザクションがエラー・キューに移動されます。

これらのデータ型の制限事項は、通常の(ヒープ構成)表および索引構成表の両方に適用されます。

関連項目:

C.1.2 適用ハンドラではサポートされていないデータ型

適用ハンドラでは一部のデータ型がサポートされません。

文DMLハンドラでは、行LCRのLONGLONG RAWまたはアセンブルされていないLOB列データは処理できません。ただし、文DMLハンドラでは、LOBアセンブリで構築された行LCRのLOB列データは処理できます。LOBアセンブリは、文DMLハンドラに対してデフォルトで有効になっています。

プロシージャDMLハンドラおよびエラー・ハンドラでは、行LCRのLONGまたはLONG RAWの列データは処理できません。ただし、プロシージャDMLハンドラおよびエラー・ハンドラでは、行LCRのアセンブルされていないLOB列データとアセンブルされたLOB列データの両方を処理できますが、アセンブルされていないLOB列データは変更できません。

関連項目:

C.1.3 インバウンド・サーバーで無視されるDDL変更のタイプ

インバウンド・サーバーでは、一部のタイプのDDL変更が無視されます。

インバウンド・サーバーでサポートされないDDL変更のタイプは次のとおりです。これらのタイプのDDL変更は、適用されません。

  • ALTER MATERIALIZED VIEW

  • ALTER MATERIALIZED VIEW LOG

  • CREATE DATABASE LINK

  • CREATE SCHEMA AUTHORIZATION

  • CREATE MATERIALIZED VIEW

  • CREATE MATERIALIZED VIEW LOG

  • DROP DATABASE LINK

  • DROP MATERIALIZED VIEW

  • DROP MATERIALIZED VIEW LOG

  • FLASHBACK DATABASE

  • RENAME

インバウンド・サーバーは、適用できない操作を指定するDDL LCRを受信すると、そのDDL LCRを無視し、インバウンド・サーバーのトレース・ファイルに次のメッセージと無視したDDLテキストを記録します。

Inbound server ignored the following DDL:

それ以外のタイプのDDL変更は、変更を格納しているDDL LCRをインバウンド・サーバーのルール・セットに従って適用する必要があれば、インバウンド・サーバーによって適用されます。

注意:

  • インバウンド・サーバーは、ALTER object_type object_name RENAME変更を適用します(ALTER TABLE jobs RENAMEなど)。したがって、オブジェクトの名前を変更するDDL変更を適用する場合は、RENAME文のかわりにALTER object_type object_name RENAME文を使用します。データベース・オブジェクトの名前を変更した後、そのデータベース・オブジェクトに対する変更をレプリケートするには、新しいデータベース・オブジェクト名を指定する新しいルールが必要になる場合があります。

  • マテリアライズド・ビューとは、スナップショットの同義語です。マテリアライズド・ビューでの文に相当するスナップショットは、インバウンド・サーバーで無視されます。

C.1.4 宛先データベースに存在する必要がある現行スキーマ・ユーザー

DDL LCRが宛先データベースで正常に適用されるためには、DDL LCRのcurrent_schemaとして指定されるユーザーは、宛先データベースに存在する必要があります。

現行スキーマは、DDLテキストでオブジェクトにスキーマが指定されていない場合に使用されるスキーマです。

関連項目:

C.1.5 インバウンド・サーバーでサポートされないOracle Label Security

インバウンド・サーバーでは、Oracle Label Security (OLS)を使用するデータベース・オブジェクトがサポートされません。

C.2 XStream Inのルールの制限事項

ルールには制限事項があります。

C.2.1 サブセット・ルールの制限事項

サブセット・ルールには制限事項があります。

サブセット・ルールには次の制限が適用されます。

  • サブセット・ルールで参照される表名の表が、サブセット・ルールと同じデータベースに存在する必要があります。また、この表は、サブセット・ルールで表に関して参照されるスキーマと同じスキーマに存在する必要があります。

  • サブセット・ルールがインバウンド・サーバーのポジティブ・ルール・セットに含まれている場合は、サブセット条件で指定した列が表に含まれている必要があります。また、各列のデータ型が、サブセット・ルールでTRUEと評価された行LCRの対応する列のデータ型と一致している必要があります。

  • LOB、LONGLONG RAW、ユーザー定義型(オブジェクト型、REF、VARRAY、ネストした表など)およびOracle提供の型(Any型、XML型、空間型、メディア型など)のデータ型の列が1つ以上存在する表に対してサブセット・ルールを作成することはできません。

関連項目:

C.3 XStream Inのルールベースの変換の制限事項

XStream Inのルールベースの変換には制限事項があります。

C.3.1 宣言ルールベースの変換ではサポートされていないデータ型

列の追加の変換を除き、列に対して実行される宣言ルールベースの変換では、インバウンド・サーバーでサポートされているデータ型がサポートされます。

列の追加の変換では、次のデータ型の列を追加できません: BLOBCLOBNCLOBBFILELONGLONG RAWROWID、ユーザー定義型(オブジェクト型、REF、VARRAY、ネストした表など)およびOracle提供型(Any型、XML型、空間型、メディア型など)。

C.4 拡張データ型に関するXStream Inの制限事項

XStream Inには拡張データ型に関する制限事項があります。

COMPATIBLE初期化パラメータを12.0.0に、MAX_STRING_SIZE初期化パラメータをEXTENDEDに設定している場合、Oracle Database 12cではVARCHAR2NVARCHAR2およびRAWの各データ型の最大サイズが大きくなりました。XStream Inでは、これらの拡張データ型がサポートされます。

ただし、拡張データ型については次の制限事項があります。

  • データ操作言語(DML)操作の元のLCRには、拡張データ型の列に関する情報が含まれていない場合があります。かわりに、XStream Inでは拡張データ型列がLOB列と同じように処理される場合があります。具体的には、追加のLCRに拡張データ型列の情報が含まれる場合があります。

  • XStreamのルールから拡張データ型列に関するLCR内のデータにはアクセスできません。

  • サブセット・ルール句では拡張データ型列を指定できません。

  • 競合検出には拡張データ型列を使用できません。

  • 拡張データ型列をDBMS_APPLY_ADM.SET_KEY_COLUMNSプロシージャで適用するための代替主キーとして使用することはできません。

  • 次のタイプの宣言ルールベースの変換では拡張データ型列を使用できません。

    • 列の追加

    • 列の保持

関連項目:

拡張データ型の詳細は、Oracle Database SQL言語リファレンスを参照してください。