暗黙的DDL
ユーザーによって生成されたDDL操作によって、暗黙的DDL操作が生成される場合があります。たとえば、次の文では、2つの異なるDDL操作が生成されます。
CREATE TABLE customers (custID number, name varchar2(50), address varchar2(75), address2 varchar2(75), city varchar2(50), state (varchar2(2), zip number, contact varchar2(50), areacode number(3), phone number(7), primary key (custID));
最初の(明示的)DDL操作は、CREATE TABLE
文自体です。
2つ目のDDL操作は、暗黙的なCREATE UNIQUE INDEX
文で、主キーの索引を作成します。この操作は、ユーザー・アプリケーションではなく、データベース・エンジンによって生成されます。
暗黙的DDLのフィルタリングのガイドライン
暗黙的DDLのフィルタ方法は、DDLのフィルタに使用するメカニズムによって異なります。詳細は、「DDLレプリケーションのフィルタリング」を参照してください。
-
DDL
パラメータを使用してDDL操作をフィルタする場合、ターゲットで明示的DDLによって暗黙的DDLが生成されるため、デフォルトではOracle GoldenGateで暗黙的DDLは除外されます。たとえば、前述の例のCREATE TABLE
文がReplicatによって適用されると、ターゲット・データベースで適切な索引が作成されます。 -
-
フィルタ・ルールで明示的DDLを伝播から除外する場合、暗黙的DDLを除外するルールも作成する必要があります。たとえば、次の例の
CREATE TABLE
文は除外するが、暗黙的CREATE UNIQUE INDEX
文は除外しない場合、ターゲット・データベースは、存在しない表に索引を作成しようとします。CREATE TABLE customers (custID number, name varchar2(50), address varchar2(75), address2 varchar2(75), city varchar2(50), state (varchar2(2), zip number, contact varchar2(50), areacode number(3), phone number(7), primary key (custID));
-
フィルタリング・ルールで明示的DDLの伝播が許可されている場合、暗黙的DDLを除外する必要はありません。Oracle GoldenGateおよびターゲット・データベースによって適切に処理されます。
-