GoldenGate中字段的映射一般配置在复制应用端的MAP参数中,字段映射要求两边尽量一致的字段的类型,当然也允许CHAR<->VARCHAR之类的转换。对于不同字段类型的映射,最好详细参考GoldenGate官方文档以得到足够的支持信息,并做好测试验证以防止数据丢失等。以下是字段映射的配置例子:

例子1

/***

MAP ddw.a1test, target ddw.a2test,                   --target前一定要留个空格,否则会报错

COLMAP (id = id, type1 = type1, sell_date1 = sell_date2); --字段映射配置

***/


例子2

/***

MAP ddw.a1test, target ddw.a2test,

COLMAP (USEDEFAULTS, sell_date1 = sell_date2); --USEDEFAULTS表示自动映射同名字段

MAP ddw.a3test, target ddw.a4test;             --不同的表映射,不同的map

MAP “ddw.a5test”, target “ddw.a6test”;         --在有些大小写敏感的数据源需要引号区分大小写

***/


例子3

/***

MAP ddw.a1test, target ddw.a2test,

COLMAP (USEDEFAULTS, num = 111, name = "abc", now_date = @DATENOW());   --字段指定固定值,注意字符值加引号,数字值不可加引号;@DATENOW()表示当前系统时间

***/


例子4

/***

MAP ddw.a1test, target ddw.a2test,

COLMAP (USEDEFAULTS,

transaction_date = @DATE (“YYYY-MM-DD”, “YY”, YEAR, “MM”, MONTH,“DD”, DAY),); --多个字符字段整合转换为目标端的一个时间字段

***/


在这里顺便插入一个很容易出错的表映射例子:

/***

map ddw.a*, target ddw.*;  --通配符表示所有a开头的表进行映射,注意的是target后面的表名千万不能也写成ddw.a*,不然会被映射成目标端aa开头的表

***/