• ----:)欢迎访问源码网(:----
    • 首页
    • 博客
    • 学院
    • 下载
    • 论坛
    • 影视
    • 发布源码
    • RSS
    • ITPig
    • 笑话网
    • 百家姓
    • 繁體中文

源码网 - 中国第一源码门户
选择镜像:网通镜像 - 电信主站
  • 首 页
  • 新闻动态
  • 网站运营
  • 网页制作
  • WEB开发
  • 编程开发
  • 图像媒体
  • 操作系统
  • 数据库
  • 服务器
热门搜索 优化 SEO 故事 cms IIS7 MySQL 个人 AdSense 主题推广 | 文章搜索: 高级搜索
会员登录/控制面版您的位置: 学院首页 >> 数据库 >> Oracle >> 详细内容
 

推荐文章

 
 

热点文章

  • Oracle PL/SQL语言入门
  • Oracle SOA Suite预览尝鲜
  • OracleOracle安全数据系统架构全接触(11
  • Oracle是关系型数据库管理系统,它功能强大、性能卓越..
  • 搭建Oracle高可用数据库环境(1)
  • oracle易忘函数用法(1)
  • 两种Oracle应用程序开发接口的对比分析(1)
  • ORACLE学习笔记--性能优化
  • 诊断Oraacle数据库Hanging问题(1)
  • Oracle中捕获问题SQL解决CPU过渡消耗(1)
  • Oracle数据仓库查询优化技术(1)
  • Oracle常见等待事件说明(1)
 
 

相关文章

 
 

百度搜索

 
 

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

  • 阅览次数:
  • 文章来源: cp整理
  • 原文作者: 不详
  • 整理日期: 2007-03-29
  • 发表评论
  • 字体大小:
  • 小
  • 中
  • 大

首先,通过下表介绍与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。

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

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,代表简体中文。

上一篇:PHP使用zlib扩展实现页面GZIP压缩输出
下一篇:构建支持Master/Slave读写分离的数据库操作类
  • 网友评论:
  • 查看所有评论
  • 我要发表评论
您的网名:
留言主题:
你要发表的内容:

 

关于本站 | 广告联系 | 版权声明 | 网站地图 | 发布软件 | 帮助中心 | 源码论坛

Copyright © 2005-2007 CodePub.Com  程序支持:木翼  滇ICP备05005971号