GoldenGate中字段的筛选一般都在TABLE参数中配置(目标端是在MAP参数)。一般推荐在源端extract进程配置文件中配置,这样可以有效得减小trail文件的大小,减小网络负载。以下是一些筛选配置例子(只列出配置文件的TABLE参数部分)。


1)字段筛选

/***

table ddw.aatest,

FETCHCOLS (id, name, type1, sell_date,value1);   --表明只提取这些字段

***/


使用指定字段做主键:

/***

table ddw.aatest,

KEYCOLS (client_taq, id);

***/


2)数据过滤

使用WHERE条件:

/***

table ddw.aatest, where (type1 ="1" AND type2 = "2"); --表明只提取表中type1=’1type2=’2’的记录

***/


如下提取非NULL值:

/***

table ddw.aatest, where (value <> @NULL);

***/


使用FILTER参数:

/***

table ddw.aatest,FILTER((num1*num2)>1000);

***/


WHERE条件不同的是,FILTER只能后面数字,字符型需要转换后才可以使用,如:

/***

table ddw.aatest, FILTER (@STRFIND(NAME,"JOE") > 0).

***/


FILTER参数的优势是还可以指定只在某种DML操作下才过滤,比如:

/***

table ddw.aatest, FILTER((ON UPDATE, ON DELETE, (num1*num2)>1000);

--只在UPDATEDELETE操作时过滤num1*num2不大于1000的值

***/