DB2 与ORACLE的比对.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
DB2 vs ORACLE PK 1 1、数据类型转换函数 整型转字符型 字符串转整形 字符串转浮点型 浮点型转字符串 字符串转日期 字符串转时间戳 日期转字符串 ORACLE to_char(1) to_number(1) to_number(1.1) to_char(1.1) to_date(2007-04-26,yyyy-mm-dd) to_date(2007-04-26 08:08:08,YYYY-MM-DD HH24:MI:SS) to_char(to_date(2007-04-29,yyyy-mm-dd),yyyy-mm-dd) DB2 char(1) int(1) double(1.1) char(1.1) date(2007-04-26) to_date(2007-04-26 08:08:08,YYYY-MM-DD HH24:MI:SS) char(date(2007-04-29)) 兼容写法 cast(1 as char) cast(1 as int) 无 无 无 兼容 无 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型 一个采用hibernate后常见的兼容问题是: 如果在映射文件中定义了某个字段为Date型 property name=createTime type=java.util.Date ???????? column name=CREATE_TIME length=7 / /property 则在DB2下,此字段必须定义为timestamp,而不能定义成DATE,不然会报出字符串右截断的错误 对于DB2来说,在查询条件中可以直接用字符串指定日期或时间戳类型字段的值,例如 where create_date = 2007-04-26 、where create_timestamp = 2007-04-26 08:08:08 ,无须使用字符串转日期函数 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_

文档评论(0)

精华文档888 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档