適用対象
Extract
説明
FETCHOPTIONSパラメータでは、Oracle GoldenGateが次の状況でデータをフェッチする方法を制御します。
Extractが更新操作を再構築するために十分な情報がトランザクション・レコードに含まれていない
TABLE文のFETCHCOLS句の結果として、Oracle GoldenGateが列値をフェッチする必要がある。
FETCHOPTIONSは表に固有です。1つのFETCHOPTIONS文は、別のFETCHOPTIONS文が見つかるまで、後続のすべてのTABLE文に適用されます。
ほとんどのインストールでは、デフォルトのフェッチ・プロパティで十分に機能します。
デフォルト
紛失した行を無視し、処理を継続する
構文
FETCHOPTIONS [, FETCHPKUPDATECOLS] [,INCONSISTENTROWaction] [, MAXFETCHSTATEMENTS number] [, MISSINGROW action] [, NOFETCH] [, SUPPRESSDUPLICATES] [, USEKEY | NOUSEKEY] [, USELATESTVERSION | NOUSELATESTVERSION] [, USESNAPSHOT | NOUSESNAPSHOT] [, USEROWID | NOUSEROWID]
FETCHPKUPDATECOLS主キーが更新された場合、使用できないすべての列をフェッチします。このオプションは、デフォルトではオフです。オフにすると、有効化されている他のFETCHOPTIONSオプションに従って、列のフェッチが実行されます。
オンにすると、主キー列への更新中のみ有効になります。結果は、TABLE文でFETCHCOLS (*)を使用した場合と同じです。LOB列はフェッチに含まれます。
HANDLECOLLISIONS を使用する場合に、このパラメータを使用します。Replicatが紛失した更新を検出すると、すべての列は、更新を挿入に変更できるようになります。
INCONSISTENTROW action
行IDによる列データのフェッチは成功したものの、キーが一致しなかったことを示します。行IDが再利用されたか、この操作の後(およびフェッチの前)に主キー更新が行われました。
actionには、次のいずれかを指定できます。
MAXFETCHSTATEMENTS number Extractがソース・データベースから行データをフェッチするために使用可能な、許可される準備済問合せの最大数を制御します。フェッチされたデータは、トランザクション・ログ・レコードから論理SQL文を構築するために使用できる情報が不足しているときに使用されます。問合せは必要に応じて準備およびキャッシュされます。MAXFETCHSTATEMENTSで指定した値に到達すると、最も古い問合せが最も新しい問合せに置き換えられます。このパラメータの値は、Extractがフェッチ問合せのみのために保持しているオープンされているカーソル数を制御します。Extractは、ストアド・プロシージャなど他の目的のために追加のカーソルを使用できます。このパラメータは、Oracleデータベースにのみ有効です。デフォルトは100です。データベースが、ここで指定するカーソル数の他に、別のアプリケーションおよびプロセスが使用するカーソルもサポートできることを確認してください。
MISSINGROW actionOracle GoldenGateがフェッチする行を特定できない場合のレスポンスを指定し、行(変更された値)の一部のみでも処理できるようにします。通常、行が特定できない理由は、変更レコードが作成されてからフェッチがトリガーされるまでの間に行が削除されてしまっているか、必要な行イメージが指定されているUNDO保存期間以前のものであったためです。
actionには、次のいずれかを指定できます。
NOFETCHExtractによるデータベースからの列のフェッチを防ぎます。このオプションはデフォルトではオフです。Extractはトレイルにレコードを書き込みますが、紛失した列であることを示すトークンを挿入します。
SUPPRESSDUPLICATES Oracleに有効です。LOB列での更新時にターゲット表領域が過剰に大きくなるのを回避します。デフォルトではSUPPRESSDUPLICATESはオフに設定されます。たとえば、レプリケーション後に、232MBソース表領域が7.52GBのターゲット表領域になる場合があります。
USEKEY | NOUSEKEYフェッチする行を見つけるためにOracle GoldenGateが主キーを使用するかどうかを決定します。
USEKEYおよびUSEROWID両方を指定する場合、レコードにより高速にアクセスできるROWIDの方が優先されます。デフォルトはUSEROWIDです。
USELATESTVERSION | NOUSELATESTVERSIONOracleに有効です。USESNAPSHOTとともに使用します。デフォルトのUSELATESTVERSIONでは、UNDO表領域からフェッチできない場合に、Extractにソース表からデータをフェッチさせます。NOUSELATESTVERSIONは、スナップショット・フェッチが失敗した場合に、Extractにその状況を無視して処理を継続させます。
スナップショット・フェッチが失敗した場合の代替アクションを指定するには、MISSINGROWオプションを使用します。
USESNAPSHOT | NOUSESNAPSHOTOracleに有効です。デフォルトのUSESNAPSHOTでは、Extractに、REDOレコードから完全には取得できない特定の操作の再構築に必要なデータの適切なスナップショットを、Oracle Flashbackメカニズムを使用してフェッチさせます。NOUSESNAPSHOTでは、Extractに、フラッシュバック・ログではなくソース表から必要なデータをフェッチさせます。
USEROWID | NOUSEROWIDOracleに有効です。フェッチする行を見つけるためにOracle GoldenGateが行IDを使用するかどうかを決定します。
USEKEYおよびUSEROWID両方を指定する場合、レコードにより高速にアクセスできるROWIDの方が優先されます。デフォルトはUSEROWIDです。
例