Oracle Data Integrator(ODI):Oracle于2006年通过收购sunopsis一款强大的多源异构数据集成软件包,现在官方网站上最新的版本是10.3.1.5,但相关博客提示ODI11g已经出炉;
ODI功能很强大但是也有它的瑕疵,比如 中文翻译的一塌糊涂,竟然把视图翻译成“查看”等,还有对于使用频率非常高的SQL UNION操作,竟然接口无法实现;
虽然ODI无法通过接口实现Union操作,但可以通过其它方式实现,这里介绍三种方法;
- 创建多个接口的形式实现(即相当于分两次进行转换集成)
- 创建视图(在源数据库创建视图),然后再利用接口转换集成
- 通过创建过程
这里介绍下第三种方法:
Mysql到Oracle数据库的集成
创建过程
详细信息中,点击添加
在源目标上书写Union语句
比如源目标中输入
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
在目标命令中输入插入语句
比如:
insert into T_BAS_RIVER_POLLUTION ( ENTERCODE, YEAR, CODE_WATERBODY, WASTEWATER_EMISSION ) values ( :EnterCode, :Year, :Code_WaterBody, :WasteWater_Emission )
注意:Values的格式为“冒号:源表Select语句别名”;
很多接口无法实现的功能,均可通过创建过程的形式来实现,并且一个过程可以执行多条sql语句;
图中添加了两条sql语句;
另外向大伙推荐一个学习ODI极好的Blog:
Detail.lee
福建省空间信息工程研究中心
2010.07.23