結果となる操作を除くSQL文のみの伝播

この例では、ソースとターゲットで異なるEVENTACTIONS句を組み合せて使用し、SQL文の結果となる操作ではなく、そのSQL文のみをレプリケートする方法を示します。この例では、INSERT INTO...SELECTトランザクションです。このようなトランザクションでは、伝播する必要のある大量の行が生成される可能性がありますが、この方法であれば、初期SQL文のみが伝播されるため、証跡およびネットワーク・オーバーヘッドを削減できます。各SELECT文は、すべてターゲットに対して実行されます。この構成では、データ整合性を保持するためにソース表とターゲット表を完全に同期する必要があります。

Extract:

TABLE source.statement, EVENTACTIONS (IGNORE TRANS INCLUDEEVENT);

Replicat:

TABLE source.statement, SQLEXEC (execute SQL statement), &
EVENTACTIONS (INFO, IGNORE);

この構成を使用するため、statement表にトランザクションの最初の操作(イベント・レコードとなるINSERT INTO...SELECT)を移入します。

ノート:

サイズの大きいSQL文の場合、文を表の複数の列に書き込むことができます。たとえば、8つのVARCHAR (4000)列を使用して、最大32KBの長さのSQL文を格納できます。

IGNORE TRANS INCLUDEEVENTがあるため、Extractでは、文のSELECT部分に関連する後続の挿入はすべて無視されますが、SQLテキストを含むイベント・レコードは証跡に書き込まれます。TABLE文の使用により、Replicatは、必要に応じてSQLテキスト列を連結するSQLEXEC文にイベント・レコードを渡し、SELECT副問合せの入力としてターゲット表を使用してINSERT INTO...SELECT文を実行します。