说实话,ORACLE 把国内的程序员惯坏了,代码中的 SQL 充斥着大量 ORACLE 特性,几
乎没人知道 ANSI 的标准 SQL 是什么样子,导致程序脱离了 ORACLE 根本无法运行,还好
随着 hibernate 的流行,情况有了很大改观
DB2 作为众多国际大客户的选择(据说世界 500 强 80%用 DB2,前 100 强更是全部采用
DB2),在国内真的很不流行,属于小众数据库,但是没办法,现在的项目要用 DB2,所
以不得不面对熟悉 ORACLE 的开发同事们写出的“ORACLE 版代码”,众多的兼容性问题搞
得很是头大,遂整理了一份经常遇到的兼容性问题列表供大家参考,貌似最近问题少了些
但愿这个势头能继续下去
1、数据类型转换函数
2、Where 条件弱类型判断
oracle: where 字符型字段 in (整形) 是允许,DB2 不允许
select 'abc' from dual where '1' in (1) 在 oracle 下可通过
select 'abc' from sysibm.sysdummy1 where '1' in (1) 在 DB2 下报错
oracle:where 字符型字段=数字型字段 允许,DB2 不允许
select 'abc' from dual where '1'=1 在 oracle 下可通过
select 'abc' from sysibm.sysdummy1 whre '1'=1 在 DB2 下报错
3、replace 关键字
oracle 支持,DB2 不支持 create or replace 语句在 DB2 下是非法的
4、子查询别名
评论0