您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

oracle与db2的区别是什么

2024/5/3 23:55:37发布62次查看
区别:1、oracle支持“create or replace”语句,db2不支持;2、oracle中date类型是带有时分秒的,db2下date只是年月日;3、oralce中substr()函数的第二个参数可以取值为0,而db2中不可以。
本教程操作环境:windows7系统、oracle 11g版、dell g3电脑。
oracle和db2是两种不同的数据库。
oracle:
oracle是甲骨文公司的一款关系数据库管理系统。
oracle数据库系统是美国oracle公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(client/server)或b/s体系结构的数据库之一。比如silverstream就是基于数据库的一种中间件。oracle数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。
db2:
全称为ibm db2。是美国ibm公司开发的一套关系型数据库管理系统,它主要的运行环境为unix(包括ibm自家的aix)、linux、ibm i(旧称os/400)、z/os,以及windows服务器版本。
db2主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境,应用于所有常见的服务器操作系统平台下。 db2提供了高层次的数据利用性、完整性、安全性、可恢复性,以及小规模到大规模应用程序的执行能力,具有与平台无关的基本功能和sql命令。db2采用了数据分级技术,能够使大型机数据很方便地下载到lan数据库服务器,使得客户机/服务器用户和基于lan的应用程序可以访问大型机数据,并使数据库本地化及远程连接透明化。 db2以拥有一个非常完备的查询优化器而著称,其外部连接改善了查询性能,并支持多任务并行查询。 db2具有很好的网络支持能力,每个子系统可以连接十几万个分布式用户,可同时激活上千个活动线程,对大型分布式应用系统尤为适用。
oracle与db2的区别
数据类型转换函数
a.子查询别名 ( as能否使用 )
oracle 中支持:select * from(select 1 from dual) 或者 select * from(select 1 from dual) tdb2 中支持:select * from(select 1 from sys.userid) t 或者 select * from(select 1 from sys.userid) as t两者兼容 写法:select * from(子查询) toracle中遇到列名为oracle关键字的,需要用双引号括起来
b.创建索引时 ( replace字段 )
oracle支持,db2不支持
create or replace语句在db2下是非法的
不可以用 create or replace sequence a1,要用 create sequence a1
c.date数据类型的区别:
oracle中date类型是带有时分秒的,但db2下date只是年月日,如’2007-04-28’,且可作为字符串直接操作,db2中要记录时分秒必须采用timestamp型。sql传值的时候,db中是日期类型的,如果画面中只有年月日(yyyy-mm-dd),在操作数据库的时候,传值时候要注意:
①用string传值
②用date传值(需要将date型变量中的时分秒格式化)
select to_char(systimestamp, 'yyyy-mm-dd hh24:mi:ss:ff') from dual;select to_date(to_char(systimestamp, 'yyyy-mm-dd hh24:mi:ss:ff'),'yyyy-mm-dd hh24:mi:ss:ff')from dual;
d.获取系统日期:
oracle: select sysdate from dual;db2: select current timestamp/date from sysibm.sysdummy1;
e.substr用法:
substr(str,pos,<length>) ; --str需要截取的参数,pos从什么位置截取,length截取的长度
在oralce中,position是可以取值为0的,但是在db2中,取值为0的话会报错;
在oracle中,我们的length长度是可以大于等于char字符串的长度的,但是函数本身的处理是依据你的起始位置position到char字符串结尾位置的长度来处理,并不会跟你所给定的length来确定,相当于是oracle为我们做了正确性的辨别并处理掉多余的长度。
在db2中,如果length的长度大于了起始位置到结束位置之间的长度,那么数据库只为我们报错,并不会像oracle那样执行出我们想得到的结果。
f.函数 rownum等的用法区别:
函数rownum在db2中是不被支持的;
如果采用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<=10db2: select t.* from (select rownumber() over() as r1 ,masa_area.* from masa_area order by area_id) t where t.r1<=10
推荐教程:《oracle教程》
以上就是oracle与db2的区别是什么的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product