ITPub博客

首页 > Linux操作系统 > Linux操作系统 > GoldenGate @STRCAT乱码

GoldenGate @STRCAT乱码

原创 Linux操作系统 作者:abstractcyj 时间:2013-07-22 14:17:45 0 删除 编辑
今天在测试GoldeGate Oracle到MSSQL的数据同步时,发现GoldenGate的对列的计算会出现乱码:

GGSCI (chenyj-WorkPC) 37> view param msrep1
REPLICAT MSREP1
setenv(NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
targetdb ggs_nc
GETTRUNCATES
APPLYNOOPUPDATES
SOURCEDEFS dirdef/source.def
--MAP scott.customer, TARGET dbo.customer;
map scott.myemps, target dbo.myemps,
COLMAP (USEDEFAULTS,
WAGES = @COMPUTE(SALARY * 12)
FULL_NAME = @STRCAT(LAST_NAME,",",FIRST_NAME));


first_name与last_name都可以正确的从oracle复制到MSSQL,但是当涉及到字符串的拼接时,结果就出现了问题。可以查看图片

可以采用触发器的方式解决问题
附MSSQL触发器:

-- ================================================
-- Template generated from Template Explorer using:
-- Create Trigger (New Menu).SQL
--
-- Use the Specify Values for Template Parameters 
-- command (Ctrl-Shift-M) to fill in the parameter 
-- values below.
--
-- See additional Create Trigger templates for more
-- examples of different Trigger statements.
--
-- This block of comments will not be included in
-- the definition of the function.
-- ================================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:
-- Create date:
-- Description:
-- =============================================
alter TRIGGER my_trig
   ON  dbo.myemps
   after  INSERT
AS 
  declare @first_name varchar(200), @last_name varchar(200), @id numeric;
BEGIN


update myemps set full_name = inserted.first_name + inserted.last_name from inserted where inserted.id = myemps.id

    -- Insert statements for trigger here

END
GO



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8520577/viewspace-766843/,如需转载,请注明出处,否则将追究法律责任。

下一篇: GoldenGate命令
请登录后发表评论 登录
全部评论
曾从事java方向开发多年。近年已经转入数据库方向。主要擅长SQL优化,Oracle数据库问题诊断,Oracle备份与恢复等。服务于医药物流,医院等行业

注册时间:2010-01-26

  • 博文量
    559
  • 访问量
    855176