Oracle、DB2 与 MySQL、PG 的 SQL语法有很多不兼容的地方,有什么工具可以完成 SQL的转换吗?

Oracle、DB2传统关系型数据库的 SQL语法 与 MySQL、PG 有很多不兼容的地方。
例如:实现字符拼接的 SQL
Oracle、DB2:
select name || ' is work at '  ||  dept  from employee where empid=10;

而 MySQL:
select concat ( name,  ' is work at ', dept )   from employee where empid=10;

有什么工具可以完成 SQL的自动转换吗?

2回答

ThinkJThinkJ  技术经理 , 信泰人寿保险股份有限公司
KiKibj冯岩赞同了此回答
要完全兼容Oracle的语法是一件非常困难的事,目前业内兼容Oracle做的比较好的应该是EDB了,阿里云号称兼容Oracle的PPAS实际上就是EDB,DB2的Oracle兼容也是EDB提供的技术,但是从我们实际的测试来看,也还是有很多不尽如人意的地方。所以想完全实现自动转换,基本上没这个可能。不过...显示全部

要完全兼容Oracle的语法是一件非常困难的事,目前业内兼容Oracle做的比较好的应该是EDB了,阿里云号称兼容Oracle的PPAS实际上就是EDB,DB2的Oracle兼容也是EDB提供的技术,但是从我们实际的测试来看,也还是有很多不尽如人意的地方。所以想完全实现自动转换,基本上没这个可能。不过部分的兼容是可能的,如果是PostgreSQL体系,可以使用诸如orafce这样的插件,还有ora2pg这样的工具,可以实现类型的自动映射,以及存储过程代码部分自动转换,而且ora2pg是perl编写的,很容易实现定制化。

收起
 2020-08-13
浏览1631
  • EDB 的确是个好动西,之前用过 MKT,迁移 Oracle 到 DB2 的神器。不过,现在好刀要用在他们自己身上了 O(∩_∩)O哈哈哈~
    2020-08-14
  • 最好全部封锁,这样我们就有机会崛起了,哈哈
    2020-08-14
zymh_zyzymh_zy  IT顾问 , 国内某公司
好问题,我也想问同类的问题,就是异构的数据库有什么好的转换工具,减少迁移的时间和后期手工调整SQL的时间?显示全部

好问题,我也想问同类的问题,就是异构的数据库有什么好的转换工具,减少迁移的时间和后期手工调整SQL的时间?

收起
 2020-08-13
浏览1544
  • Oracle 迁移到 DB2,IBM就有类似的工具,实在无法转换,还可以直接启用 DB2 的兼容特性,直接兼容 Oracle的语法。
    2020-08-13

提问者

冯岩数据库管理员, 银行

分布式关系型数据库选型优先顺序调查

发表您的选型观点,参与即得50金币。

问题状态

  • 发布时间:2020-08-13
  • 关注会员:4 人
  • 问题浏览:2792
  • 最近回答:2020-08-13