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

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

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的自动转换吗?

收起
参与14

查看其它 2 个回答ThinkJ的回答

ThinkJThinkJ技术经理信泰人寿保险股份有限公司

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

保险 · 2020-08-13
浏览4842
  • EDB 的确是个好动西,之前用过 MKT,迁移 Oracle 到 DB2 的神器。不过,现在好刀要用在他们自己身上了 O(∩_∩)O哈哈哈~
    2020-08-14
  • 最好全部封锁,这样我们就有机会崛起了,哈哈
    2020-08-14

回答者

ThinkJ
技术经理信泰人寿保险股份有限公司

ThinkJ 最近回答过的问题

回答状态

  • 发布时间:2020-08-13
  • 关注会员:5 人
  • 回答浏览:4842
  • X社区推广