这个部分是自己随便整理下。

  在工作上需要,公司需要DB2兼容Oracle。

  不懂DB2与Oracle的细节,这里努力整理,以后精通了再回来重新修改、

  https://www.2cto.com/database/201207/144503.html。

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.子查询别名 

  ORACLE 支持select * from(select 1 from dual) 或者 select * from(select 1 from dual) t

  DB2 支持select * from(select 1 from sysibm.sysdummy1) t 或者 select * from(select 1 from sysibm.sysdummy1) as t

  固兼容的写法是select * from(子查询) t

5.DATE数据类型的区别

  ORACLE中DATE型也是带有时分秒的,但DB2下DATE只是年月日,如'2007-04-28',且可作为字符串直接操作,DB2中要记录时分秒必须采用TIMESTAMP型。

  

6.分页处理 

  如果采用JDBC分页的话,注意rownum在DB2中不受支持,比如从masa_area表中取得area_id最小的10条记录,语句分别如下,注意这里的别名t书写方法

  ORACLE: select t.* from (select rownum as r1 ,masa_area.* from masa_area order by area_id) t where t.r1<=10

  DB2: select t.* from (select rownumber() over() as r1 ,masa_area.* from masa_area order by area_id) t where t.r1<=10

7.decode函数

  decode函数在DB2不被支持,兼容的写法是采用case when

8.NVL函数

  nvl写法在DB2不被支持,兼容的写法是采用coalesce

  ORACLE: select NVL(f_areaid,'空') from masa_user 等同于 select coalesce(f_areaid,'空',f_areaid) from masa_user

  DB2: select coalesce(f_areaid,'空',f_areaid) from masa_user

9.substr不同

10.获取当前系统时间

  ORACLE Sysdate

  DB2           CURRENT DATE

11.

  

Db2与Oracle的区别的更多相关文章

  1. DB2和Oracle区别

    转 http://blog.chinaunix.net/uid-7374279-id-2057574.html 写在前面:今天客户来访(日本人),问我DB2和Oracle区别.因为不是DBA(勉强的理 ...

  2. [转载]DB2与ORACLE、MYSQL比较2

    原文地址:DB2与ORACLE.MYSQL比较2作者:欣颖 4.2 Oracle9i  Oracle的产品战略是每12到18个月发布一个主要版本.主要发行版本所遵循的命名战略在PC领域中更为常见,它不 ...

  3. (转)DB2和 Oracle的并发控制(锁)比较

    DB2和 Oracle的并发控制(锁)比较 牛 新庄2005 年 12 月 26 日发布 原文:https://www.ibm.com/developerworks/cn/data/library/t ...

  4. DB2、ORACLE SQL写法的主要区别

    DB2.ORACLE SQL写法的主要区别   说实话,ORACLE把国内的程序员惯坏了,代码中的SQL充斥着大量ORACLE特性,几乎没人知道ANSI的标准SQL是什么样子,导致程序脱离了ORACL ...

  5. 【转】SQL Server与Oracle的区别

    转自:http://soft.chinabyte.com/database/255/12258255.shtml SQL Server与Oracle的区别 2012-02-10 00:00 中国IT实 ...

  6. db2和oracle字段类型对比

    在网上找到一片关于oracle与DB2数据类型的比较,特记下来. Oracle DB2/400 Oracle数据类型 注意事项 DB2 UDB数据类型 注意事项 DATE DATETIMETIMEST ...

  7. DB2与oracle类型对比

    本文摘自http://www.cnblogs.com/cy163/archive/2010/11/17/1880280.html 做过DB2数据库应用迁移的工程师,了解IBM MTK工具在迁移过程中所 ...

  8. 转载文章 MySQL与Oracle的区别

    MySQL与Oracle的区别   1.  Oracle是大型数据库而Mysql是中小型数据库,Oracle市场占有率达40%,Mysql只有20%左右,同时Mysql是开源的而Oracle价格非常高 ...

  9. db2 mysql oracle 邮件 tomcat ssh telnet ftp samba 账号密码

    db2 mysql oracle 邮件 tomcat ssh telnet ftp samba 账号密码 检测

随机推荐

  1. VirtualBox 文件共享及网络配置技巧

    文件共享   1. 安装增强功能 2. 分配数据空间 这样就可以在virtualbox里访问本地的数据了:   网络配置

  2. C# 获取IIS站点及虚拟目录信息

    using System; using System.DirectoryServices; using System.Collections.Generic; using System.Text; n ...

  3. tmux终端复用/tmate终端共享

    目录 tmux tmate tmux 一种终端复用工具,是终端中的窗口管理器.常见的一种用途是在关闭父shell时保持程序运行(常用于ssh访问断开连接后保持运行).linux上可通过包管理器进行安装 ...

  4. 在ubuntu server上搭建Hadoop

    1. Java安装: Because everything work with java. $ sudo apt-get install openjdk-7-jdk 安装之后,可以查看java的版本信 ...

  5. Apache 的 ab 压测工具快速使用

    ab 是一个 httpd 自带的很好用的压力测试工具,它是 apache bench 命令的缩写.ab 命令会创建多个并发访问线程,模拟多个访问者同时对某一 URL 地址进行访问.可以用来测试 apa ...

  6. java基础-网络编程(Socket)技术选型入门之NIO技术

    java基础-网络编程(Socket)技术选型入门之NIO技术 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.传统的网络编程 1>.编写socket通信的MyServer ...

  7. C语言扫盲篇

    C语言扫盲篇 作者:尹正杰 版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接. 一.什么是C语言 C 语言是一种通用的高级语言,最初是由 ...

  8. webpack:代码分割与按需加载

    代码分割就是我们根据实际业务需求将代码进行分割,然后在合适的时候在将其加载进入文档中. 代码中总有些东西我们希望拆分开来,比如: 使用概率较低的模块,希望后期使用的时候异步加载 框架代码,希望能利用浏 ...

  9. 英文写作指南——《“compare to”等同“compare with”吗?》

  10. Kafka 温故(四):Kafka的安装

    Step 1: 下载Kafka > tar -xzf kafka_2.9.2-0.8.1.1.tgz> cd kafka_2.9.2-0.8.1.1 Step 2: 启动服务Kafka用到 ...