GoldenGate使用SQLEXEC和GETVAL实现码表关联
使用OGG中的SQLEXEC参数,可以执行SQL语句或存储过程,再加上@GETVAL函数,可以在目标端获取源表没有的字段值。比如,源端有一个事实表和一个代码表COUNTRY_CODES,代码表中有两个字段:country_name 和 country_id,事实表即customers表,里面只有country_id字段。
我们希望在目标端的customers中,增加一列country_name字段,并在OGG同步的过程中,针对这个字段赋值,这样在目标端可以直接select customers查看数据,不用再关联COUNTRY_CODES表。
下面分别演示使用SQL语句和存储过程的实现方式。
方法一,使用SQL语句
以下使用SQL语句获取COUNTRY_NAME ,抽取进程参数:
|
EXTRACT gavinext USERID idit_prd, PASSWORD idit_prd RMTHOST indb02, MGRPORT 7809 RMTTRAIL ./dirdat/xx TABLE idit_prd.customers; |
以下是目标端参数:
|
REPLICAT gavinrep SETENV (NLS_LANG=”AMERICAN_AMERICA.WE8ISO8859P1″) SETENV (ORACLE_SID=GGDB2) ASSUMETARGETDEFS USERID idit_prd,PASSWORD idit_prd MAP idit_prd.customers, TARGET idit_prd.customers, & SQLEXEC (ID lookup, & QUERY “select country_name cname from country_code where country_id =:v_country_id”,& PARAMS (v_country_id = country_id)),& COLMAP (USEDEFAULTS, country_name = @GETVAL (lookup.cname) ); |
方法二,使用存储过程
定义一个SP基于country_id获取country_name, 如下:
|
create or replace procedure get_country (v_country_id IN number, v_country_name OUT varchar2 ) is begin select country_name into v_country_name from country_code where country_id= v_country_id; end; / |
以下演示如何在replicat中调用SP获取额外的字段值。
|
REPLICAT gavinrep SETENV (NLS_LANG=”AMERICAN_AMERICA.WE8ISO8859P1″) SETENV (ORACLE_SID=GGDB2) ASSUMETARGETDEFS USERID idit_prd,PASSWORD idit_prd MAP idit_prd.customers, TARGET idit_prd.customers, & SQLEXEC (SPNAME GET_COUNTRY, & PARAMS (v_country_id = country_id)),& COLMAP (USEDEFAULTS, country_name = @getval (GET_COUNTRY.V_COUNTRY_NAME) ); |
除了上面的应用,还可以获取多个字段计算后的值到目标字段,从而实现简单的ETL转换。
GoldenGate使用SQLEXEC和GETVAL实现码表关联的更多相关文章
- Oracle GoldenGate常用参数
OGG(Oracle GoldenGate)参数介绍 所有的GoldenGate进程均有参数文件 Manager Extract Replicat Utilities 所有参数均有缺省配置 实际应用只 ...
- GoldenGate中使用FILTER,COMPUTE 和SQLEXEC命令
本文主要介绍OGG中一些过滤或计算函数的用法,以及sqlexec的基本用法 SQLPREDICATE 在使用OGG初始化时,可以添加此参数到extract中,用于选择符合条件的记录,下面是OGG官方文 ...
- Goldengate参数规范
1. 文档综述 1.1. 文档说明 本文档规定了在实施Goldengate时,各个进程需要配置的参数. 该参数模板适合于Goldengate11.2.1.0版本: **注:本文档为Golden ...
- GOLDENGATE 配置文档,各类参数--转发
1 GoldenGate简要说明 GoldenGate现在是业内成熟的数据容灾与复制产品,经过多年的发展与完善,现在已经成为业内事实上的标准之一. GoldenGate软件是一种基于日志的 ...
- goldengate一些参数整理
转自:http://blog.csdn.net/lemontree1123/article/details/46603549 manager参数: AUTOSTART:指定在mgr启动时自动启动那些进 ...
- java IO之 字符流 (字符流 = 字节流 + 编码表) 装饰器模式
字符流 计算机并不区分二进制文件与文本文件.所有的文件都是以二进制形式来存储的,因此, 从本质上说,所有的文件都是二进制文件.所以字符流是建立在字节流之上的,它能够提供字符 层次的编码和解码.列如,在 ...
- Loadrunner手动编写包含事务、检查点、关联等元素的脚本实例
一.前言: 本文适合初学者,包含很多细节,包括 二.准备: 1.以虚拟机中的Linux系统作为服务器,开启bugfree服务. 2.以fiddler作为抓包工具,辅助脚本开发. 3.脚本流程:bugf ...
- 使用GoldenGate EVENTACTIONS执行数据的实时触发和定制化
Oracle GoldenGate不仅可以在线实时同步数据(包括增量和存量),也内置有一套事件触发流程,允许用户根据某张表某条记录的某个特殊字段值,触发相应的自定义执行流程,比如接收到某个银行账号的大 ...
- 将replicated数据与元数据关联
本章介绍元数据的用法以及如何将replicated数据与元数据相关联. 12.1概述 将数据从一个表复制到另一个表时,重要的考虑因素是源表和目标表的列结构(元数据)是否相同. Oracle Golde ...
随机推荐
- C# 服务端篇之实现RestFul Service开发(简单实用)
一.RestFul简介 REST(Representational State Transfer 通常被翻译为“表述性状态传输”或者“表述性状态转移”)是RoyFielding提出的一个描述互联系统架 ...
- [原]CentOS7安装Rancher2.1并部署kubernetes (一)---部署Rancher
################## Rancher v2.1.7 + Kubernetes 1.13.4 ################ ##################### ...
- python中的pymongo连接脚本
author: headsen chen date: 2019-04-12 17:39:12 先安装python3,pymongo [root@localhost mnt]# cat /root/p ...
- Android 7.0 适配
extends:http://www.jianshu.com/p/56b9fb319310http://blog.csdn.net/chay_chan/article/details/57083383
- linux下的ssh和rynsc
在ubuntu下有ssh的目录,但是没有使用 ps -e | grep ssh时没有任何输出,说明没有安装ssh或者是1.x版本,可以打开etc/ssh目录,看是否有文件,下装系统再看看吧.还有ryn ...
- 为 git设置代理
普通设置 git config --global http.proxy 'socks5://127.0.0.1:1080'git config --global https.proxy 'socks5 ...
- swust oj 1068
图的按录入顺序深度优先搜索 5000(ms) 10000(kb) Tags: 深度优先 图的深度优先搜索类似于树的先根遍历,即从某个结点开始,先访问该结点, 然后深 ...
- SQL中什么时候需要使用游标?使用游标的步骤
https://zhidao.baidu.com/question/568932670.html 例子table1结构如下id intname varchar(50) declare @id intd ...
- linux_vim_emmet插件的安装配置
首先要去如下网址下载一个安装包(英文基础好的同学可以去github上搜他的开源,写的更加详细) https://www.vim.org/scripts/script.php?script_id=298 ...
- IntelliJ IDEA 注册码激活
IntelliJ IDEA 注册码激活 方法一:使用激活服务器激活方法 步骤 1.打开注册/激活窗口: 2.选择 License server: 3.填入上述其中一个网址(如:http://idea. ...