Oracle GoldenGate的“转换日期”字段

时间:2018-11-26 22:06:42

标签: oracle-golden-gate

我有一个Oracle GoldenGate设置,其中以Oracle数据库为源,但有一个非Oracle目标。我的源数据库位于时区A。是否可以配置我的提取/复制,以便目标中的所有数据都位于UTC或某些可自定义的时区B中?

为了更清楚一点,假设我在EST中有一个数据库,其中有一个日期列,其值为2018-11-26 17:01:49,我希望将数据转换为UTC,并且复制的值为2018-11-26 22:01:49。是否有一种干净的(或任何)方法来实现这一目标?

1 个答案:

答案 0 :(得分:0)

此转换仅适用于 REPLICAT 。它会进行时间的完整计算,并从名为dt的源日期列到名为dt5的目标列,该列将转换为日期+ 5小时(您可以将其调整为任何时区您必须转换数据)。假设您的源表是t4,目标表是t4_copy(对于SCHEMA scratch

MAP scratch.t4, TARGET scratch.t4_copy,
COLMAP ( USEDEFAULTS,
dt5 = @DATE ('YYYY-MM-DD HH:MI:SS', 'JTS',
@COMPUTE (@DATE ('JTS', 'YYYY-MM-DD HH:MI:SS', dt) + 18000000000 ) ) 
);

JTS(Juilan时间戳记)产生可以在数字表达式中使用的数字。单位是微秒(这就是+18000000000的原因)