Oracle与DB2数据类型分类对应说明

2016-02-19 13:53 4 1 收藏

有了下面这个Oracle与DB2数据类型分类对应说明教程,不懂Oracle与DB2数据类型分类对应说明的也能装懂了,赶紧get起来装逼一下吧!

【 tulaoshi.com - 编程语言 】

首先,通过下表介绍与DB2/400数据类型之间的对应关系,是一对多的关系,具体采用哪种对应关系,应具体问题具体分析。 注重事项: Oracle中的DATE含有年、月、日、时、分、秒,它和DB2/400中的DATE不相互对应,DB2/400中的DATE只有年、月、日,TIME类型含有时、分、秒,因此日期和时间类型要进行转换,请参照下表。 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)

CLOB(n) l 若n=32K,则使用DB2/400中的CHAR类型、VARCHAR。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

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 VARCHAR 若Oracle中定义NUMBER(p) 或 NUMBER(p,s), 则使用SAMLLINT/INTEGER/BIGINT

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

l 若Oracle中定义NUMBER(p,s), 则使用DECIMAL(p,s)

l 若Oracle中定义NUMBER,则使用FLOAT(n)/REAL/DOUBLE 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 ROWIND虚拟列用于对表中的某一列进行唯一标示,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,代表简体中文。

来源:http://www.tulaoshi.com/n/20160219/1605524.html

延伸阅读
中文Access2000速成教程--1.8定义 ACCESS集锦 Access新手来看:Access的特点、概 要精通ACCESS需掌握的内容 用Access 2000进行班级管理 一篇详细讲述mysql和access区别的 中文Access2000速成教程--1.1使用 Access使用查询 Access 数据库安全攻防策略 Access命令行参数 文本 nvarchar(n) 备注 ntext 数字(长整型) int 数字(整型) smallint ...
Microsoft Access是用户经常使用的数据库软件,它可以用ODBC很方便地得到AS/400上DB2数据。 具体操作如下:(操作步骤用WIN2000+Office2000环境描述,用户已配置好ODBC数据源)。 1、打开Microsoft Access,建立一个新数据库。 2、在“表”上按鼠标右键,之后用鼠标左键单击“导入”菜单项,如图1所示。之后弹出“导入”...
标签: Web开发
  内容提要: DB2 pureXML功能部件允许您将格式良好的 XML 文档以分层结构的形式存储在具有 XML 数据类型的表列中。通过将 XML 数据存储在 XML 列中,数据可保持其本机分层结构形式,而不是将其作为文本存储或映射为其他数据模型。因为 pureXML 数据存储已完全集成,所以可利用现有 DB2数据服务器功能来访问和管理存储的 XML 数据。...
在现实的应用中大家可能经常会遇到在DB2中如何实现Oracle的某些功能﹐在此我简单地总结一下﹐实现某一功能可能会有很多种方法﹐在此就没有全部列出﹐欢迎大家继续﹐以便和大家共享﹐共同探讨﹐共同近步﹗(以下主要以Oracle8I和DB2 7.X为例)。 1.如何取一表前n笔记录的Oracle和DB2的写法 Oracle 可以这样实现﹕ Select * fro...
1 引言 在关系数据库(DB2,Oracle,Sybase,Informix和SQL Server)最小的恢复和交易单位为一个事务(Transactions),事务具有ACID(原子性,一致性,隔离性和永久性)特征。关系数据库为了确保并发用户在存取同一数据库对象时的正确性(即无丢失更新、可重复读、不读"脏"数据,无"幻像"读),数据库中引入了并发(锁)机制。基本的锁...

经验教程

879

收藏

13
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部