SQLEXECのその他のガイドライン
次のSQLEXEC
ガイドラインに従ってください。
-
TABLE
またはMAP
の1つのエントリで、最大20のプロシージャまたは問合せを実行できます。これらは、パラメータ文にリストされている順序で実行されます。 -
SQLEXEC
句よりも先に、Oracle GoldenGateユーザーのデータベース・ログイン情報を指定する必要があります。データベース・タイプおよび構成済の認証方式に応じて、Extractパラメータ・ファイルのSOURCEDB
およびUSERIDALIAS
パラメータ、またはReplicatパラメータ・ファイルのTARGETDB
およびUSERIDALIAS
パラメータを使用します。 -
SQLは、Oracle GoldenGateユーザーによって実行されます。このユーザーは、ストアド・プロシージャを実行し、RDBM提供のプロシージャをコールする権限を持っている必要があります。
-
ストアド・プロシージャまたは問合せ内のデータベース操作は、元のトランザクションと同じコンテキストでコミットされます。
-
SQLEXEC
を使用して主キー列の値を更新しないでください。SQLEXEC
を使用してキー列の値を更新すると、元のキー値が使用できなくなるため、Replicatプロセスで後続の更新操作または削除操作を実行できなくなります。キー値を変更する必要がある場合、元のキー値を別の列にマップして、TABLE
パラメータまたはMAP
パラメータのKEYCOLS
オプションを使用してその列を指定できます。 -
Db2では、Oracle GoldenGateはODBCの
SQLExecDirect
関数を使用してSQL文を動的に実行します。つまり、接続先のデータベース・サーバーは、文を動的に準備できる必要があります。ODBCは、実行のたびに(リクエストされる間隔で)SQL文を準備します。通常は、このことがOracle GoldenGateユーザーの問題になることはありません。詳細は、IBM Db2のドキュメントを参照してください。 -
SQLEXEC
文中のオブジェクト名はすべて、データベースに応じて、2つまたは3つの部分からなる完全修飾名である必要があります。 -
SQLEXEC
のストアド・プロシージャまたは問合せの影響を受けるすべてのオブジェクトは、SQLの実行前に適切な構造で存在している必要があります。したがって、これらのオブジェクトの構造に影響するDDL (CREATE
やALTER
など)は、SQLEXEC
の実行前に実行される必要があります。 -
単独
SQLEXEC
文によって影響を受けるすべてのオブジェクトは、Oracle GoldenGateプロセスの起動前に存在している必要があります。このため、DDLサポートは、これらのオブジェクトに対して無効にする必要があります。そうしないと、SQLEXEC
のプロシージャまたは問合せが実行される前に、DDL操作によって構造が変更されたり、オブジェクトが削除されたりする可能性があります。