プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成
12c (12.2.0.1)
E70107-04
目次へ移動
目次

前
次

1.6 サポートされるOracleデータ型の詳細

次に、Oracle GoldenGateでサポートされるOracleデータ型の詳細を概説します。特に断りのないかぎり、クラシックと統合の両方のキャプチャ・モードでサポートされます。これらのモードの詳細は、「キャプチャおよび適用モードの選択」を参照してください。

1.6.1 ANYDATAデータ型

次のANYDATAデータ型がサポートされます。

次のデータ型のみでソース表からフェッチされます。

  • BINARY_DOUBLE

  • BINARY_FLOAT

  • CHAR

  • DATEINTERVAL DAY TO SECOND

  • INTERVAL YEAR TO MONTH

  • NCHAR

  • NUMBER

  • NVARCHAR2

  • RAW

  • TIMESTAMP

  • TIMESTAMP WITH TIME ZONE

  • TIMESTAMP WITH LOCAL TIMEZONE

  • UDT

  • VARCHAR/VARCHAR2

1.6.1.1 サポートの制限

  • ソース・データベース互換性が11.2.0.0.0以上に設定されている必要があります。これらのデータ型内に埋め込まれた名前付きコレクションおよびVARRAYに対するサポート。

1.6.2 数値データ型

次の数値データ型がサポートされます。

  • Oracleによって許可されている最大サイズまでのNUMBER

  • BINARY FLOAT

  • BINARY DOUBLE

  • UROWID

1.6.2.1 サポートの制限

浮動小数点数の範囲および精度のサポートは、ホスト・マシンによって異なります。通常は有効桁数が16桁の精度ですが、データベースのドキュメントで想定されている近似について確認してください。Oracle GoldenGateでは、サポートされる精度を超える値は丸められるか切り捨てられます。

1.6.3 文字データ型

次の文字データ型がサポートされます。

  • CHAR

  • VARCHAR2

  • LONG

  • NCHAR

  • NVARCHAR2

1.6.3.1 サポートの制限

  • 拡張VARCHAR列が一意索引または制約の一部の場合、この表へのダイレクト・パス挿入により、Replicatが異常終了して警告が表示されることがあります。all_indexes/all_ind_columns (一意索引)またはall_cons_columns/all_constraints (一意制約)をチェックして、拡張VARCHARによって異常終了が発生したことを確認します。拡張VARCHARを確認したら、索引を一時的に削除にするか、制約を無効にできます。

    一意索引の場合:

    drop index t2u;

    一意制約の場合:

    alter table v32ind modify constraint sys_c0010125 disable;

  • 拡張(32K) VARCHAR2およびNVARCHAR2列は、Extractが統合キャプチャ・モードである間は変更されません。Replicatのすべてのモードは、32K VARCHAR2およびNVARCHAR2列をサポートします。次の制限が適用されます。

    • Oracle GoldenGateは、キーまたは一意索引の一部、またはTABLEまたはMAPパラメータのKEYCOLS句の列として、32K VARCHAR2およびNVARCHAR2列をサポートしません。32K列は、主キーの一部になる場合でも、補足的にログに記録されないため、行識別子として使用できません。

    • 32K列は、CDR (競合の検出および解決)構成の解決列、またはトランザクション・ログに列値が必要なその他の作業の基準としてサポートされません。

    • Oracle GoldenGateでは、32K列の数に制限がありませんが、各証跡レコードには、インライン・レコードで4MBの長さの制限があります。この制限に達する32K列の数は約160列ですが、列の数は、拡張されたVARCHAR2列の実際のサイズによっても異なります。

1.6.4 マルチバイト文字型

次のマルチバイト文字型がサポートされます。

  • NCHARおよびNVARCHAR2のマルチバイト文字データ型

  • CHAR列およびVARCHAR2列に保存されるマルチバイト・データ

1.6.4.1 サポートの制限

  • Oracle GoldenGateでマルチバイト文字データをサポートするには、ソースとターゲットのデータベースが、レプリケートされる表と順序のスキーマ定義に関して論理上同一である必要があります。変換、フィルタリングおよび他の操作はサポートされていません。2つのデータベース間のキャラクタ・セットは、次のいずれかである必要があります。

    • 同一。たとえば、ソースとターゲットでSHIFT-JISなどです。

    • 同等。同じキャラクタ・セットではありませんが、同じ文字のセットを含みます(SHIFT-JISとEUC-JPなど)。

    • ターゲットはソースのスーパーセットです。たとえば、UNICODEはすべての文字タイプのスーパーセットです。したがって、他のすべてのキャラクタ・セットのスーパーセットです。

  • 長さセマンティクスがバイト単位であるか、文字単位であるかに関係なく、マルチバイト・データがサポートされています。

その他の構成要件については、「特別なデータ型の処理」を参照してください。

1.6.5 バイナリ・データ型

次のバイナリ・データ型がサポートされます。

  • RAW

  • LONG RAW

1.6.6 日付およびタイムスタンプのデータ型

次の日時データ型がサポートされます。

  • DATE

  • TIMESTAMP(「サポートの制限」を参照)

1.6.6.1 サポートの制限

  • Oracle GoldenGateでは、マイナスの日付はサポートされていません。

  • ターゲット列のサイズがソースのサイズ以上である場合にのみ、INTERVAL DAYおよびINTERVAL YEARがサポートされます。

  • Oracle GoldenGateでは、UTCオフセットで表されたTIMESTAMP WITH TIME ZONE (TIMESTAMP '2011-01-01 8:00:00 -8:00')のキャプチャとレプリケーションがサポートされます。

  • TZR(リージョンID)で表されたTIMESTAMP WITH TIME ZONEは、データ変更のレプリケーションについてはサポートされますが、初期ロード、SQLEXECまたは列をデータベースからフェッチする必要がある操作についてはサポートされません。これらの場合、列が選択されると、データベースによってリージョンIDが時間オフセットに変換されます。Replicatでは、タイムスタンプは、時間オフセット値付きの日付と時間のデータとしてレプリケートされます。

  • Oracle GoldenGateでは、0001/01/03 00:00:00から9999/12/31 23:59:59のタイムスタンプ・データをサポートします。タイムスタンプがGMTからローカル時間に変換されると、これらの制限も変換後のタイムスタンプに適用されます。タイムゾーンに応じて、変換により時間が追加または引かれる場合があり、これにより、タイムスタンプがサポートされている上限を超えたり、下回ったりすることがあります。

  • Oracle GoldenGateでは、+12:00から-12:00の間の時間オフセット値をサポートしています。

TZRで表されたTIMESTAMP WITH TIME ZONEをサポートし、TIMESTAMP WITH LOCAL TIMEZONEの適切な処理も行うには、「特別なデータ型の処理」を参照してください。

1.6.7 ラージ・オブジェクトのデータ型

次のラージ・オブジェクト型がサポートされます。

  • CLOB

  • NCLOB

  • BLOB

  • SECUREFILEおよびBASICFILE

1.6.7.1 一般的なサポートの制限 - 統合およびクラシック・キャプチャ・モード

  • Oracle GoldenGateでは、4Kより大きいラージ・オブジェクトのフィルタリング、列マッピングまたは操作はサポートされません。

  • DDLサポートが有効な場合、Oracle GoldenGateでCTAS文をレプリケートし、基となるターゲット表からのデータの選択を可能にします。これはGET_CTAS_DMLSパラメータを使用して制御され、すべての型付き表に適用されます。このパラメータが使用されると、OIDが保持されます。

1.6.7.2 サポートの制限 - クラシック・キャプチャ・モード

  • BASICFILEオプションLOBは、REDOログからキャプチャされますが、次の場合、データベースからフェッチされます。

    • ExtractでLOBが無効と判断される場合。

    • LOBデータがREDOログ内にない場合。これは、BASICFILE LOBNOLOGGINGオプションを指定して作成された場合に起こります。

    • LOBがCACHEオプションを使用して作成されています。

    • LOBが一部のみ更新される場合。Oracle GoldenGateでは、部分的な列データはサポートされていません。LOBLOBリセット・レコードから開始しない場合、あるいは新しいLOBの長さに則した最初のバイトで開始せず、最後のバイトで終了しない場合に、ExtractによってLOBデータは不完全であるとみなされます。部分更新は、OCILOBWrite()OCILobAppend()OCiLobCopy()OCILobLoadFromFile()およびOCILobTrim()の各OCIコールと、dbms_lobパッケージのプロシージャを使用して行われた更新によって生成されます。

    • ExtractでLOBデータの異常が検出される場合。

  • SECUREFILEオプションLOBは、更新が完了し、LOBの変換(列の圧縮、暗号化または重複除外)が行われず、行外に格納される場合にのみ、REDOログからキャプチャされます。SECUREFILE LOBは、次の場合にデータベースからフェッチされます。

    • LOBが行内に格納される場合。

    • LOBが圧縮または暗号化のいずれかにより変換される場合。

    • LOBCACHE属性を使用して作成されている場合。

    • ExtractによってLOBインスタンスが無効であることが決定される場合。

    • REDOログにLOBデータがない場合。これが行われる可能性があるのは、DEDUPLICATENOLOGGINGFILESYSTEM_LIKE_LOGGNGのいずれかのオプションを使用してLOBを作成した場合です。

    • LOBは、OCILOBWrite()OCILobAppend()OCiLobCopy()OCILobLoadFromFile()およびOCILobTrim()を使用するか、dbms_lobパッケージのプロシージャを介して更新されています。

    • Extractによって検出されるようなその他の異常。

  • SECUREFILE LOBをある記憶域から別の記憶域に変更すると(たとえば、ENCRYPTからDECRYPTに)、Oracleによって表全体が更新され、Extractによってそれらの更新がログからキャプチャされます。そのため、Oracleによって表に関連付けられているすべてのデータ・ブロックが更新されているように見えます。ALTER TABLEコマンドによってDEFAULT値がNULL値の列に設定される場合も、これが発生する可能性があります。

  • JavaScriptオブジェクト注釈(JSON)列を含む表を持つ、管理バンドル・エージェント(XAG)の高可用性環境では、デフォルトのReplicatモードでデータをレプリケートできませんが、Extractsでは、このデータを抽出できます。Replicatの異常終了を回避するには、DBOPTIONS NOSKIPTEMPLOBパラメータを設定する必要があります。

その他の設定要件については、「特別なデータ型の処理」を参照してください。

1.6.8 XMLデータ型

次のXML型がサポートされます。

  • 統合キャプチャ・モードでは、Oracle GoldenGateは、XML CLOBXMLオブジェクト・リレーショナルおよびXMLバイナリとして格納されるXMLType列およびXMLType表をサポートします。

  • クラシック・キャプチャ・モードでは、Oracle GoldenGateは、XML CLOBおよびXMLバイナリとして格納されるXMLType列をサポートします。

1.6.8.1 サポートの制限 - 統合およびクラシック・キャプチャ・モード

次のものはサポートされません。

  • フィルタリングと操作はサポートされていません。TABLE文またはMAP文でCOLMAP句を使用して、オブジェクトのXML表現を文字列にマップできます。

  • XMLデータで作業する場合は、AL32UTF8キャラクタ・セットをデータベース・キャラクタ・セットにすることをお薦めします。これにより、Oracle GoldenGateによってソースからターゲットに正しく変換されます。

  • 階層対応の表は、Oracle XMLデータベース・リポジトリで管理され、手続き型ロギングでサポートされます。

  • DDLサポートが有効な場合、Oracle GoldenGateでCTAS文をレプリケートし、基となるターゲット表からのデータの選択を可能にします。これはTRANSLOGOPTIONS GETCTASDMLパラメータを使用して制御され、すべての型付き表に適用されます。このパラメータが使用されると、OIDが保持されます。XMLType表の場合、行オブジェクトIDがソースとターゲットの間で一致する必要がありますが、これは、Replicatで論理SQL文を使用すると保持されません。空の文(新規表にデータを挿入しない)で作成されたXMLType表は適切に保持されません。

  • 主キーベースのオブジェクト識別子(OID)を持つXMLType

  • 1つのXML列を持つリレーショナル表

  • XMLバイナリおよびXMLオブジェクト・リレーショナルに対するSQL*Loader直接パス挿入

  • XMLスキーマベースのXMLTypeはサポートされますが、XMLスキーマに対する変更はレプリケートされず、DBMS_XMLSCHEMAパッケージを使用してソースとターゲットの両方のデータベースに登録する必要があります。

  • XMLType列を含む表が、スカラー列で構成された1つ以上の一意キー制約を持つか、すべてのスカラー列の組合せで一意性が保証される必要があります。ExtractまたはReplicatでは、行の識別用のXML属性で構成された一意キー制約または主キー制約は使用できません。

1.6.8.2 サポートの制限 - 統合キャプチャ・モード

  • ネイティブ・キャプチャの場合、XML ORおよびXML Binary。XMLバイナリ/ORは、11.2.0.3より上のリリースと互換性がある場合にフェッチされます。

  • XML CLOBでは、ソース・データベース互換性はリリース11.0.0.0.0より上です。

  • XMLTypeを更新するSET全体の長さは、新しいコンテンツと他の操作、XQueryバインド値を含めて最大32Kです。

1.6.8.3 サポートの制限 - クラシック・キャプチャ・モード

  • XMLバイナリの場合、Oracle GoldenGateによってソース・データベースから追加の行データがフェッチされます。フェッチされたデータは元のトランザクションの一部ではない場合があるため、不整合が発生する可能性があります。

  • XML Object Relationalは、クラシック・キャプチャ・モードでサポートされません。

XMLのレプリケートの詳細は、「特別なデータ型の処理」を参照してください。

1.6.9 ユーザー定義または抽象型

ソースおよびターゲットの構造が同一である場合、Oracle GoldenGateでユーザー定義型(UDT)または抽象データ型(ADT)がサポートされます。スキーマ名は別々にすることができます。

1.6.9.1 一般的なサポートの制限 - 統合およびクラシック・キャプチャ・モード

  • REDOベースはほとんどの属性タイプをサポートしますが、UDTに次のものが含まれている場合は、ソース表からフェッチにフォールバックします。

    • ネストされた表

    • SDO_TOPO_GEOMETRY

    • SDO_GEORASTER

  • フェッチベースは、次のものを含むUDTをサポートしません。

    • ANYDATA

    • TIMESTAMP WITH TIMEZONE

    • TIMESTAMP WITH LOCAL TIMEZONE

    • INTERVAL YEAR TO MONTH

    • INTERVAL DAY TO SECOND

    • BINARY FLOAT

    • BINARY DOUBLE

    • BFILE

  • Oracle GoldenGateは、次のものを含むUDTをサポートしません。

    • CFILE

    • REF

    • OPAQUE (XMLTypeおよびANYDATAを除く)

  • UDTが含まれている表には、主キー、一意な制約がある列または一意な索引を設定する必要があります。

  • キーにUDTが含まれている、またはUDTが列のみであるオブジェクトまたはリレーショナル表はサポートされていません。

  • RMTTASKパラメータはUDTをサポートしていません。

  • バイナリまたは印刷できない文字が含まれているCHAR属性およびVARCHAR属性は、サポートされていません。

  • オブジェクトの列または行内に値が含まれているUDTは、TABLE文またはMAP文のフィルタ基準で使用したり、Oracle GoldenGateの列変換関数の入力または出力、SQLEXECまたは他の組込みデータ操作ツールとして使用することはできません。Oracleの同様のソースおよびターゲットにのみ、サポートが提供されます。

  • UDTおよびネストされた表はサポートされますが、次の制限があります。

    • ネストされた表のUDTには、CHARNVARCHAR2またはNCLOB属性を含めることができません。

    • 拡張(32k) VARCHAR2またはRAW属性がUDTにある場合、ネストされた表はサポートされません。

    • CLOBまたはBLOB属性がUDTにある場合、ネストされた表はサポートされません。

    • 他のUDTの一部である、ネストされた表の列/属性はサポートされません。

その他の設定要件については、「特別なデータ型の処理」を参照してください。

1.6.9.2 コレクション型に対する制限 - 統合およびクラシック・キャプチャ・モード

  • ネストされた表のデータを更新する際には、ネストされた表が含まれている行を同時に更新する必要があります。

  • VARRAYSとネストされた表をフェッチすると、変更箇所のみでなく、毎回、列の内容全体がフェッチされます。

1.6.9.3 オブジェクト表に対する制限 - 統合およびクラシック・キャプチャ・モード

統合キャプチャのみ(REDOベース)

  • REDOベースは、REDOからオブジェクト表をキャプチャしますが、オブジェクト表に次の属性が含まれている場合は、ソース表からフェッチにフォールバックします。

    • ネストされた表
    • SDO_TOPO_GEOMETRY
    • SDO_GEORASTER
  • CREATE TABLE as SELECT (CTAS)文で作成されたオブジェクト表を完全にサポートするには、CTAS文からDMLをキャプチャするように統合キャプチャを構成する必要があります。CTASの詳細は、「CREATE TABLE AS SELECT」を参照してください。

  • Oracleのオブジェクト表は、サポートされているターゲット・データベースのOracle以外のオブジェクト表にマップできます。

クラシックおよび統合キャプチャ(フェッチベース)

  • フェッチベースは、リーフレベルのすべての属性、ルートレベルLOBXML、UDT、ANYDATA、およびコレクションの属性をフェッチします。

  • フェッチベースは、次のリーフレベルの属性を含むオブジェクト表をサポートしません。

    • ANYDATA
    • TIMESTAMP WITH TIMEZONE
    • TIMESTAMP WITH LOCAL TIMEZONE
    • INTERVAL YEAR TO MONTH
    • INTERVAL DAY TO SECIND
    • BINARY FLOAT
    • BINARY DOUBLE
  • Oracle GoldenGatでは、1方向とアクティブ/アクティブ構成でオブジェクト表がサポートされます。オブジェクト表はREDOログからキャプチャされますが、LOB、コレクション型などの標準のリレーショナル表の場合はデータベースからフェッチされる特定のデータ型もオブジェクト表の場合はフェッチされます。同様に、標準の表の場合にコレクション型に適用される現在の制限が、オブジェクト表の場合のそれらの型にも適用されます。

  • 主キーは、オブジェクト表のルートレベルのオブジェクト属性で定義する必要があり、リーフレベルの属性を含めることはできません。キーが定義されていない場合には、Oracle GoldenGateで有効なすべての列が擬似キーとして使用されます。

  • Oracle GoldenGateは、オブジェクト表のDDL操作のレプリケーションをサポートしていません。この制限には、オブジェクト表のALTERと関連付けられているデータベース・オブジェクトのバージョニングが含まれます。

  • オブジェクト表またはオブジェクト型が含まれているオブジェクト表では、シノニムはサポートされていません。

1.6.9.4 Spatial型に対する制限 - 統合およびクラシック・キャプチャ・モード

Oracle GoldenGateでは、SDO_GEOMETRYSDO_TOPO_GEOMETRYおよびSDO_GEORASTER(ラスター表)がサポートされています。

その他の構成情報は、「特別なデータ型の処理」を参照してください。

1.6.10 サポートされていないOracleデータ型

Oracle GoldenGateでは、次のデータ型はサポートされません。

  • これらのデータ型内に埋め込まれた名前付きコレクションおよびVARRAYSを含まないVARRAYSを指定したデータ型に対する、ANYDATAフェッチベースの列サポート

  • 最上位のVARRAY

  • ANYDATASET

  • ANYTYPE

  • MLSLABEL

  • ORDDICOM

  • REF

  • TIMEZONE_ABBR

  • URITYPE

  • サポートされていないOracleデータ型を含むUDT

  • Oracle GoldenGateでは、ID列データまたはValid Time Temporal列データのレプリケーションをサポートしていません。

その他の除外については、「各キャプチャ・モードでサポートされるOracleデータ型とオブジェクトのサマリー」を参照してください。