Oracle Spatialオブジェクト

SDO_GEORASTERオブジェクト型の列が1つ以上含まれている表をOracleソースからOracleターゲットにレプリケートするには、それらが正しく処理されるよう、次の手順に従ってOracle GoldenGateを構成します。

  1. GeoRaster表とそれに関連するラスター・データ表に対するTABLE文とMAP文を作成します。
  2. SDO_GEORASTERデータ型のMETADATA属性の値が1MBを超える場合、XMLBUFSIZEオプションを指定してDBOPTIONSパラメータを使用し、SDO_GEORASTERデータ型の埋込みSYS.XMLTYPE属性を格納するメモリー・バッファのサイズを大きくします。バッファが小さすぎる場合、Extractは異常終了します。『Oracle GoldenGateリファレンス』XMLBUFSIZEに関する項を参照してください。
  3. ターゲットGeoRaster表と空間データの整合性を確保するために、ソースとターゲットの両方でトリガーを有効なままにします。MAPパラメータのREPERRORオプションを使用して、ターゲットでトリガーを有効なままにしたことにより発生する「ORA-01403 データが見つかりません」エラーを処理します。ソースのGeoRaster表の行を削除すると、トリガーによって削除がラスター・データ表にカスケードされます。両方の削除がレプリケートされます。レプリケートされた親削除によって、ターゲット上でカスケードされた(子)削除がトリガーされます。レプリケートされた子削除が行われると、冗長になりエラーが発生します。REPERRORを使用するには、次のようにします。
    • ラスター・データ表が含まれている各MAP文でREPERROR文を使用します。

    • Oracleエラー1403をSQLエラーとして使用します。

    • いずれかの応答オプションをエラー処理に使用します。

ターゲットのGeoRaster表のアクティブなトリガーによって生じるラスター表のエラーを処理する適切な方法は、DISCARDを指定してREPERRORを使用し、エラーをトリガーした、カスケードされた削除を破棄します。ターゲットのGeoRaster表のトリガーによって、ラスター・データ表に対して削除が実行されるため、レプリケートされた削除は不要です。

MAP geo.st_rdt, TARGET geo.st_rdt, REPERROR (-1403, DISCARD) ;

エラー処理の監査証跡を保持する必要がある場合は、REPERROREXCEPTIONを使用して例外処理を呼び出します。この場合、例外表を作成して、次のようにソースのラスター・ターゲット表に2回マップします。

  • 1回目は実際のターゲットのラスター・データ表(1403エラーを処理するREPERRORを使用)。

  • 2回目は例外表で、COLMAP句を使用して1403エラーとその他の関連する情報をキャプチャします。

例外表の使用の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

REPERRORオプションの詳細は、『Oracle GoldenGateリファレンス』を参照してください。