リフレッシュ操作を制御するための SQL の指定
デフォルトでは、CDC Replication は、 表レベルの消去操作またはリフレッシュ操作に応答して、ターゲット表にある行をすべて削除します。 表の消去操作またはリフレッシュ操作に 応答して CDC Replication に削除させる 行を制限する SQL WHERE 節を指定できます。
CDC Replication は、条件が真である行のみを削除または切り捨てます。例えば、サプライヤー表から行を削除するために WHERE 節を使用するとします。 SQL 文 SupplierName= 'IBM' により、サプライヤー表から、SupplierName が IBM® であるすべての行が削除されます。
また、CDC Replication が 表のリフレッシュ操作、切り捨て操作、または消去操作をターゲット表に適用した後で実行される追加の SQL ステートメントを指定することもできます。
すべての CDC Replication レプリケーション・エンジン (CDC Replication Engine for DB2® for z/OS® と CDC Replication Engine for DB2 for LUW を除く) では、DMSQL コマンドを実行して、 Management Console で「追加 SQL」フィーチャーを使用可能にする必要があります。詳しくは、 適切な CDC Replication レプリケーション・エンジンの 資料で、コマンド に関するセクションを参照してください。
CDC Replication Engine for DB2 for z/OS をインストールした場合は、キーワード ALLOWSQL を YES に設定して、Management Console で追加の SQL フィーチャーを有効にする必要があります。このキーワードは CHCDBMxx 構成制御データ・セット・メンバーに追加できます。このキーワードについて詳しくは、『../../com.ibm.cdcdoc.cdcforzos.doc/refs/allowsql.html』を参照してください。
CDC Replication Engine for DB2 for LUW をインストールした場合は、 メタデータ表を作成して Management Console で「追加 SQL」フィーチャーを有効にする必要があります。 このフィーチャーについて詳しくは、『../../com.ibm.cdcdoc.cdcfordb2luw.doc/tasks/enablesqlstatementsinmanagementconsole.html』を参照してください。
- スペースを含んだデータベース、表、または列の名前を参照する場合は、名前を大括弧で囲む必要がある。 例えば、「EMP NY」という表名を参照する場合は、「[EMP NY]」と入力する。
- delete WHERE 節が文字の列を参照する場合、指定される値を単一引用符で囲む必要がある。例: MGR = 'Anna Kim'
- delete WHERE 節では、LOB 列は参照できない。
- 指定できるのは、SQL INSERT、UPDATE、および DELETE の文のみである。
- SQL 文の長さは、4,000 バイトまで。1 行に収まらない SQL 文を指定する場合、Enter キーを押して 1 行を超える文に改行を入れてはならない。 テキストは次の行へ自動的に送られます。
- 論理的な分岐や反復はサポートされない。
- ターゲット・サーバーで実行しているデータベースは、SQL 文の構文を認識する必要がある。
- 複数の SQL 文は、セミコロン (;) で区切る。 SQL 文中の文字ストリングにセミコロンが含まれている場合は、ストリング内で連続した 2 つのセミコロンを (;;) 指定する。
- Management Console は、SQL 文が構文上正しいかどうかは検証しない。ターゲットの DBMS で、レプリケーション中に文が検証される。