Oracle Data Integrator(ODI):Oracle于2006年通过收购sunopsis一款强大的多源异构数据集成软件包,现在官方网站上最新的版本是10.3.1.5,但相关博客提示ODI11g已经出炉;

ODI功能很强大但是也有它的瑕疵,比如 中文翻译的一塌糊涂,竟然把视图翻译成“查看”等,还有对于使用频率非常高的SQL UNION操作,竟然接口无法实现;

虽然ODI无法通过接口实现Union操作,但可以通过其它方式实现,这里介绍三种方法;

  1. 创建多个接口的形式实现(即相当于分两次进行转换集成)
  2. 创建视图(在源数据库创建视图),然后再利用接口转换集成
  3. 通过创建过程

这里介绍下第三种方法:

Mysql到Oracle数据库的集成

创建过程

image

详细信息中,点击添加

image

在源目标上书写Union语句

image 

比如源目标中输入

select substring(code,1,12)||substr(code,15,11) EnterCode,2007 Year,dm Code_WaterBody,SUM(ifnull(fs_p,0))  WasteWater_Emission
from
(
select code,upper(x0316_1) dm,x0314_1 fs_p from g103
union all
select code,upper(x0316_2),x0314_2 from g103
union all
select code,upper(x0316_3),x0314_3 from g103
union ALL
select code,upper(x0316_4),x0314_4 from g103
union all
select code,upper(x0316_5),x0314_5 from g103
union all
select code,upper(J0314) ,j0307 from g203
) a
where dm is not null
group by code,dm

 

在目标命令中输入插入语句

image

比如:

 

insert into T_BAS_RIVER_POLLUTION
(
ENTERCODE,
YEAR,
CODE_WATERBODY,
WASTEWATER_EMISSION
)
values
(
:EnterCode,
:Year,
:Code_WaterBody,
:WasteWater_Emission
)


 

注意:Values的格式为“冒号:源表Select语句别名”;

很多接口无法实现的功能,均可通过创建过程的形式来实现,并且一个过程可以执行多条sql语句;

image

图中添加了两条sql语句;

 

另外向大伙推荐一个学习ODI极好的Blog:

http://odiexperts.com/

 

Detail.lee

福建省空间信息工程研究中心

2010.07.23

posted on 2010-07-23 17:32  SIRC_Detaillee  阅读(1010)  评论(0)    收藏  举报