Oracle VS DB2 数据类型

时间:2022-09-10 12:13:13

=========================Oracle VS DB2====================================

本文转自:http://www.bitscn.com/oracle/install/200604/16541.html
首先,通过下表介绍ORACLE与DB2/400数据类型之间的对应关系,是一对多的关系,具体采用哪种对应关系,应具体问题具体分析。

Oracle DB2/400
Oracle数据类型 注意事项 DB2 UDB数据类型 注意事项
DATE   DATE
TIME
TIMESTAMP l
如果只使用MM/DD/YYY,那么使用DATE类型。
l 如果只使用HH:MM:SS, 那么使用TIME类型。
l 如果要使用日期和时间,则使用时间戳类型(TIMESTAMP)
l 可以使用Oracle中的TO_CHAR()函数来取DATE的字串来分别与DB2/400的DATE、TIME相匹配。
VARCHAR2(n) n<=4000 CHAR(n)
VARCHAR(n) l
若n<=32766,则使用DB2/400中的CHAR类型、VARCHAR
LONG n<=2GB VARCHAR(n)DL@bitsCN_com网管软件下载 
CLOB(n) l
若n<=32K,则使用DB2/400中的CHAR类型、VARCHAR。
l 若32K=< n <=2GB,则使用CLOB。
ROW&
LONG ROW
n<=255 CHAR(n) FOR BIT DATA
VARCHAR(n) FOR BIT DATA
BLOB(n) l
若n<=32K, 则使用CHAR(n) FOR BIT DATA 或
VARCHAR(n) FOR BIT DATA 
l 若n<=2GB, 则使用BLOB(n)
BLOB n<=4GB BLOB(n) 若n<=2GB, 则使用BLOB(n)
CLOB n<=4GB CLOB(n) 若n<=2GB, 则使用CLOB(n)
NCLOB n<=4GB DBCLOB(n) 若n<=2GB, 则使用DBCLOB(n/2)
NUMBER   SMALLINT/INTEGER/BIGINT

DECIMAL(p,s)/NUMBER(p,s)

Float(n)/ REAL/DOUBLE l

若Oracle中定义NUMBER(p) 或 NUMBER(p,s), 则使用SAMLLINT/INTEGER/BIGINT
l 若Oracle中定义NUMBER(p,s), 则使用DECIMAL(p,s)
l 若Oracle中定义NUMBER,则使用FLOAT(n)/REAL/DOUBLE bbs.bitsCN.com

注意事项:

  DATE and TIME

  Oracle中的DATE含有年、月、日、时、分、秒,它和DB2/400中的DATE不相互对应,DB2/400中的DATE只有年、月、日,TIME类型含有时、分、秒,因此日期和时间类型要进行转换,请参照下表。

NUMBER

  Oracle中的NUMBER类型可以对应DB2/400中的很多类型,这种对应关系要依赖于Oracle中number将用于保存何种类型的数据,是整型还是带有小数位的实型数据,另外还要考虑类型所占用的存储空间,例如:SAMLLINT占2 byte, INTEGER占4 byte; BIGINT占8 byte;Oracle中的NUMBER类型所占用的存储空间要根据它的定义而定,例如缺省精度下的NUMBER有38个数字长,占用20 byte的空间。具体的对应关系请参照上表。

ROW and LOB类型

  DB2/400提供VARCHAR和CLOB与ORACLE中的RAW和LONG RAW相对应。ORACLE也支持大对象:BLOB、CLOB、CLOB和NCLOB, ORACLE中的BLOB和CLOB可以提供4GB的空间,而DB2/400中的BLOB和CLOB只能存放2GB的数据;DB2/400中的DBCLOB与ORACLE中的NCLOB 2GB相对应。Oracle 中的BFILE数据类型用于管理数据库以外的二进制数据,数据库中的表将指向数据库外部的存放的BFILE文件,DB2/400也提供一个类似的数据类型DATALINK相对应。

  
ROWID

  Oracle ROWID虚拟列用于对表中的某一列进行唯一标示,DB2/400中也有这样的数据类型ROWID,它与ORACLE中的ROWID的功能相似。DB2/400中的ROWID可以存放40 byte的数据用来唯一标示表中的每一行,它没有ccsid属性,这些信息中没有关于datafile、 block 或 row的信息。

  例如:

  CREATE TABLE LIBRARYNAME/ORDERS2 (ORDERNO ROWID, SHIPPED_TO VARCHAR (36) , ORDER_DATE DATE) ORDERNO的数据类型为ROWID,用于存放订单号,每当插入一行时,系统自动生成一个值,存放进这个字段。可以用OPERATION NAVIGATOR查看它的内容。

Character type

  DB2/400的CHAR、VARCHAR类型与ORACLE中的VARCHAR2(n)类型相对应,但是ORACLE中的VARCHAR2(n)类型仅用于存放较小的字符串,这里的n小于4000,因此在这种情况下,最好用定长的CHAR(N)类型与ORACLE的VARCHAR2(n)相对应,这样不仅可以提高效率,还可以节省存储空间,若使用VARCHAR(n)类型最好用ALLOCATE参数,这样可以提高数据库的性能,它可以减少内存和硬盘之间的输入/输出操作。

  要注意DB2/400中的字符串中文输入问题,要想在DB2/400上输入中文应用这样的SQL创建表,这里的CCSID 935,代表简体中文。

  例如:

  CREATE TABLE MYLIB/ZHONG (HANZI CHAR (30 ) CCSID 935 NOT NULL WITHDEFAULT)

Oracle VS DB2 数据类型的更多相关文章

  1. 实践Oracle与DB2区别及问题解决

    实践Oracle与DB2区别及问题解决 项目进入开发阶段的时候,为了方便,一直使用Oracle数据库进行开发, 所以很多sql语句都是在oracle能正常创建的,后期由于项目中嵌入了IBM的产品及其他 ...

  2. oracle与DB2

    1.体系结构,DB2的实例和数据库分开的做法,我个人还是比较喜欢的,因为实例可以创建多个,数据库的恢复直接恢复到实例下就可以了,相对ORACLE简单多了. 2.管理工具,DB2的管理工具做得太简陋了, ...

  3. oracle与DB2的一些架构

    首先,我们需要理解 Oracle 使用的架构,并理解它与 DB2 的不同之处.图 1 展示了 Oracle 的系统结构.将该图与 图 2 进行比较,后者显示了 DB2 的系统结构.在阅读本文的时候,为 ...

  4. oracle和DB2的差异

    1.简介 当今IT的环境正经历着剧烈的变化,依靠单一的关系型数据库管理系统(RDBMS)管理数据的公司开始逐渐减少.分析家的报告指出 ,今天超过90%的公司都拥有不只一种RDBMS.在现在紧张的经济情 ...

  5. Oracle、Db2、SqlServer、MySQL 数据库插入当前系统时间

    做易买网项目,由于对数据库插入系统时间不了解,常常遇到的问题: 1.java.sql.SQLException: ORA-01861: 文字与格式字符串不匹配.原因:由于获取系统时间类型不对,应为sy ...

  6. Oracle存储过程-自定义数据类型&comma;集合&comma;遍历取值

    摘要 Oracle存储过程,自定义数据类型,集合,遍历取值 目录[-] 0.前言 1.Packages 2.Packages bodies 3.输出结果 0.前言 在Oracle的存储过程中,可能会遇 ...

  7. Oracle中的数据类型和数据类型之间的转换

    Oracle中的数据类型 /* ORACLE 中的数据类型: char 长度固定 范围:1-2000 VARCHAR2 长度可变 范围:1-4000 LONG 长度可变 最大的范围2gb 长字符类型 ...

  8. Oracle数据库之数据类型

    Oracle数据库之数据类型 Oracle基本数据类型(亦叫内置数据类型,internal datatypes或built-in datatypes)可以按类型分为:字符串类型.数字类型.日期类型.L ...

  9. Oracle与DB2的区别

    系统结构概述 首先,我们需要理解 Oracle 使用的架构,并理解它与 DB2 的不同之处.图 1 展示了 Oracle 的系统结构.将该图与 图 2 进行比较,后者显示了 DB2 的系统结构.在阅读 ...

随机推荐

  1. Ubuntu 中Eclipse 默认的OpenJDK 和 SUNJDK问题总结

    今天 在 Ubuntu 12.04 X86 的虚拟机环境中 搭建C++ 的开发环境,默认 下载了 eclipse-cpp-mars-R-linux-gtk.tar.gz 是带有CDT 的: 关于 CD ...

  2. 1&period;10 基础知识——GP3&period;1 制度化 &amp&semi; GP3&period;2 收集改进信息

    摘要: GP3.1是要求建立组织级的关于该过程的制度.标准.模版等全套体系,要求覆盖该PA所有的SP和GP.GP3.2 体现的是持续改进,每个过程都应该收集相应的改进信息. 正文: GP3.1 Est ...

  3. windows下安装memcache的基本步骤

    本文主要解决的是window下memcached的安装的问题,在使用的过程中经常会被第一步环境的配置搞混,本文结合我的配置过程和遇到的问题,做一个总结 1,开启php memcache的扩展,在文件  ...

  4. 模型验证组件——FluentValidation

    之前在博客园有幸从网友那里得知一个C#的模型验证组件(哈 不知道这样表述正确不),组件的功能比较简单,主要是实现了对Model的验证,例如验证用户名是否为空,密码长度是不是多余6个字符,当然还有其他更 ...

  5. Hibernate,JPA注解&commat;SecondaryTables

    使用类一级的 @SecondaryTable或@SecondaryTables注解可以实现单个实体到多个表的映射. 使用 @Column或者 @JoinColumn注解中的table参数可指定某个列所 ...

  6. Combiner

    如果job 设置了 combiner ,则job的每个map运行的数据会先进入combiner,然后再通过patitioner分发到reduce.通过combiner能减少reduce的计算.空间压力 ...

  7. Qt之启动外部程序

    简述 QProcess可以用来启动外部程序,并与它们交互. 要启动一个进程,通过调用start()来进行,参数包含程序的名称和命令行参数,参数作为一个QStringList的单个字符串. 另外,也可以 ...

  8. DedeCms 5&period;7友情链接模块注入漏洞

    漏洞版本: DedeCms 5.7 漏洞描述: DedeCms基于PHP+MySQL的技术开发,是目前国内应用最广泛的php类CMS系统. DedeCms 5.7前台提交友情链接处,可以插入恶意JS代 ...

  9. 【转】DEM DTM DLG DRG DOM DSM

    pasting DTM DLG DRG DOM DSM" title="[转载]DEM DTM DLG DRG DOM DSM" height="477&quo ...

  10. flume进阶

    上一张初识里面谢了一些flume入门的内容,其实在真正工作环境里面这种情况使用的是很少的,大部分情况,我们可能需要从多台设备的日志里面汇总收集数据并存储到HDFS上,以便于后期对数据进行处理,真实的情 ...