映射列
--表级列映射
使用colmap映射source/target 名字不相同的列,可配合data definition使用;
同extract/replicat分别配合table/map一起使用;
Usedefaults – 当source/target 列名一致时使用默认映射规则,不必每次都显示映射列,对同一列不可同显示映射一同使用
TABLE
MAP
Map sales.acctbl, target sales.accttab, colmap (
Usedefaults, --
Name = cust_name ,--将source的cust_name列转化为target的name列
Transaction_date = @date(“YYYY-MM-DD”,”YY”,year,”MM”,month,”DD”,day), --将source的date转化为target的transaction_date,
Area_code = @strext (phone_no,1,3));
全局列映射
使用Colmatch 创建全局规则,可协同names或prefix/suffix使用,””忽略大小写
COLMATCH {NAMES = | PREFIX | SUFFIX | RESET}
其中prefix/suffix为忽略去除source column的前后缀
默认列映射
如果没有使用colmatch/colmap,采用默认规则;
如果source/target 列名一致则映射;
如果不一致,采用fallback name mapping,由全局参数namematchignorecase/namematchexact决定
数据类型映射
数值列 – 如果target列长度较小则从右边truncate,较大则0填充
字符串列—target列长度较小则从右边truncat,较大则空格填充
日期列—target较小则从右truncate,反之则填充当前时间
过滤行
使用filter/where协同table/map工作
filter
TABLE
, FILTER (
[, ON INSERT | ON UPDATE| ON DELETE]
[, IGNORE INSERT | IGNORE UPDATE | IGNORE DELETE]
, );
MAP
, FILTER (
[, ON INSERT | ON UPDATE| ON DELETE]
[, IGNORE INSERT | IGNORE UPDATE | IGNORE DELETE]
[, RAISEERROR ]
, );
MAP SALES.TCUSTORD, TARGET SALES.TORD, FILTER (@COMPUTE (PRODUCT_PRICE*PRODUCT_AMOUNT) > 10000);
TABLE ACT.TCUSTORD, FILTER (ON UPDATE, ON DELETE, AMOUNT > 50);
Where
TABLE
MAP
过滤列
Cols/colsexcept协同table使用
TABLE hr.employees, COLS (employee_id ,email, department_id);
过滤DML
默认OGG会捕获所有DML,可在extract/replicat参数文件分别配置如下参数
GETINSERTS | IGNOREINSERTS
GETUPDATES | IGNOREUPDATES
GETDELETES | IGNOREDELETES
Insertupdates—将source的update转化为insert
Insertdeletes—将source的delete转化为insert
Updatedeletes—将source的delete转化为update
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15480802/viewspace-761981/,如需转载,请注明出处,否则将追究法律责任。
![user_pic_default.png](http://blog.itpub.net/images/user_pic_default.png)
<%=items[i].content%>
<%if(items[i].items.items.length) { %><%=items[i].items.items[j].username%> 回复 <%=items[i].items.items[j].tousername%>: <%=items[i].items.items[j].content%>
转载于:http://blog.itpub.net/15480802/viewspace-761981/