专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »数据库 » oracledb2:Oracle和DB2数据类型的分类对应介绍说明 »正文

oracledb2:Oracle和DB2数据类型的分类对应介绍说明

来源: 发布时间:星期四, 2009年2月5日 浏览:2次 评论:0
="t18">   首先通过下表介绍和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/400DATE、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 若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 , INTEGER占4 ; BIGINT占8 ;Oracle中NUMBER类型所占用存储空间要根据它定义而定例如缺省精度下NUMBER有38个数字长占用20 空间具体对应关系请参照上表  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数据类型用于治理数据库以外 2进制数据数据库中表将指向数据库外部存放BFILE文件DB2/400也提供个类似数据类型DATALINK相对应  ROWID  Oracle ROWIND虚拟列用于对表中列进行唯标示DB2/400中也有这样数据类型ROWID它和ORACLE中ROWID功能相似DB2/400中ROWID可以存放40 数据用来唯标示表中它没有ccsid属性这些信息中没有有关datafile、 block 或 row信息  例如:  CREATE TABLE LIBRARYNAME/ORDERS2 (ORDERNO ROWID, SHIPPED_TO VARCHAR (36) , ORDER_DATE DATE) ORDERNO数据类型为ROWID用于存放订单号每当插入行时系统自动生成个值存放进这个字段可以用OPERATION NAVIGATOR查看它内容  Character type  DB2/400CHAR、VARCHAR类型和ORACLE中VARCHAR2(n)类型相对应但是ORACLE中VARCHAR2(n)类型仅用于存放较小这里n小于4000因此在这种情况下最好用定长CHAR(N)类型和ORACLEVARCHAR2(n)相对应这样不仅可以提高效率还可以节省存储空间若使用VARCHAR(n)类型最好用ALLOCATE参数这样可以提高数据库性能,它可以减少内存和硬盘的间输入/输出操作  要注重DB2/400中串中文输入问题要想在DB2/400上输入中文应用这样SQL创建表这里CCSID 935,代表简体中文

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: