="t18">
首先
![](/icons/75545dou.gif)
通过下表介绍和DB2/400数据类型的间
![](/icons/75545de.gif)
对应关系
![](/icons/75545dou.gif)
是
![](/icons/75545yi.gif)
对多
![](/icons/75545de.gif)
关系
![](/icons/75545dou.gif)
具体采用哪种对应关系
![](/icons/75545dou.gif)
应具体问题具体分析
![](/icons/75545dou2.gif)
注重事项:Oracle中
![](/icons/75545de.gif)
DATE含有年、月、日、时、分、秒
![](/icons/75545dou.gif)
它和DB2/400中
![](/icons/75545de.gif)
DATE不相互对应
![](/icons/75545dou.gif)
DB2/400中
![](/icons/75545de.gif)
DATE只有年、月、日
![](/icons/75545dou.gif)
TIME类型含有时、分、秒
![](/icons/75545dou.gif)
因此日期和时间类型要进行转换
![](/icons/75545dou.gif)
请参照下表
![](/icons/75545dou2.gif)
Oracle
DB2/400
Oracle数据类型
注重事项 DB2 UDB数据类型 注重事项
DATE DATE
TIME
TIMESTAMP l 假如只使用MM/DD/YYY,那么使用DATE类型
![](/icons/75545dou2.gif)
l 假如只使用HH:MM:SS, 那么使用TIME类型
![](/icons/75545dou2.gif)
l 假如要使用日期和时间
![](/icons/75545dou.gif)
则使用时间戳类型(TIMESTAMP)
l 可以使用Oracle中
![](/icons/75545de.gif)
TO_CHAR
![](/icons/75545kh.gif)
![](/icons/75545hanshu.gif)
来取DATE
![](/icons/75545de.gif)
字串来分别和DB2/400
![](/icons/75545de.gif)
DATE、TIME相匹配
VARCHAR2(n) n<=4000
CHAR(n)
VARCHAR(n) l 若n<=32766,则使用DB2/400中
![](/icons/75545de.gif)
CHAR类型、VARCHAR
LONG n<=2GB VARCHAR(n)
CLOB(n) l
若n<=32K,则使用DB2/400中
![](/icons/75545de.gif)
CHAR类型、VARCHAR
![](/icons/75545dou2.gif)
l 若32K=< n <=2GB
![](/icons/75545dou.gif)
则使用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中
![](/icons/75545de.gif)
NUMBER类型可以对应DB2/400中
![](/icons/75545de.gif)
很多类型
![](/icons/75545dou.gif)
这种对应关系要依靠于Oracle中number将用于保存何种类型
![](/icons/75545de.gif)
数据
![](/icons/75545dou.gif)
是整型还是带有小数位
![](/icons/75545de.gif)
实型数据
![](/icons/75545dou.gif)
另外还要考虑类型所占用
![](/icons/75545de.gif)
存储空间
![](/icons/75545dou.gif)
例如:SAMLLINT占2
![](/icons/75545byte.gif)
, INTEGER占4
![](/icons/75545byte.gif)
; BIGINT占8
![](/icons/75545byte.gif)
;Oracle中
![](/icons/75545de.gif)
NUMBER类型所占用
![](/icons/75545de.gif)
存储空间要根据它
![](/icons/75545de.gif)
定义而定
![](/icons/75545dou.gif)
例如缺省精度下
![](/icons/75545de.gif)
NUMBER有38个数字长
![](/icons/75545dou.gif)
占用20
![](/icons/75545byte.gif)
![](/icons/75545de.gif)
空间
![](/icons/75545dou2.gif)
具体
![](/icons/75545de.gif)
对应关系请参照上表
![](/icons/75545dou2.gif)
ROW and LOB类型 DB2/400提供VARCHAR和CLOB和ORACLE中
![](/icons/75545de.gif)
RAW和LONG RAW相对应
![](/icons/75545dou2.gif)
ORACLE也支持大对象:BLOB、CLOB、CLOB和NCLOB, ORACLE中
![](/icons/75545de.gif)
BLOB和CLOB可以提供4GB
![](/icons/75545de.gif)
空间
![](/icons/75545dou.gif)
而DB2/400中
![](/icons/75545de.gif)
BLOB和CLOB只能存放2GB
![](/icons/75545de.gif)
数据;DB2/400中
![](/icons/75545de.gif)
DBCLOB和ORACLE中
![](/icons/75545de.gif)
NCLOB 2GB相对应
![](/icons/75545dou2.gif)
Oracle 中
![](/icons/75545de.gif)
BFILE数据类型用于治理数据库以外
![](/icons/75545de.gif)
2进制数据
![](/icons/75545dou.gif)
数据库中
![](/icons/75545de.gif)
表将指向数据库外部
![](/icons/75545de.gif)
存放
![](/icons/75545de.gif)
BFILE文件
![](/icons/75545dou.gif)
DB2/400也提供
![](/icons/75545yi.gif)
个类似
![](/icons/75545de.gif)
数据类型DATALINK相对应
![](/icons/75545dou2.gif)
ROWID Oracle ROWIND虚拟列用于对表中
![](/icons/75545de.gif)
某
![](/icons/75545yi.gif)
列进行唯
![](/icons/75545yi.gif)
标示
![](/icons/75545dou.gif)
DB2/400中也有这样
![](/icons/75545de.gif)
数据类型ROWID
![](/icons/75545dou.gif)
它和ORACLE中
![](/icons/75545de.gif)
ROWID
![](/icons/75545de.gif)
功能相似
![](/icons/75545dou2.gif)
DB2/400中
![](/icons/75545de.gif)
ROWID可以存放40
![](/icons/75545byte.gif)
![](/icons/75545de.gif)
数据用来唯
![](/icons/75545yi.gif)
标示表中
![](/icons/75545de.gif)
每
![](/icons/75545yi.gif)
行
![](/icons/75545dou.gif)
它没有ccsid属性
![](/icons/75545dou.gif)
这些信息中没有有关datafile、 block 或 row
![](/icons/75545de.gif)
信息
![](/icons/75545dou2.gif)
例如: CREATE TABLE LIBRARYNAME/ORDERS2 (ORDERNO ROWID, SHIPPED_TO VARCHAR (36) , ORDER_DATE DATE) ORDERNO
![](/icons/75545de.gif)
数据类型为ROWID
![](/icons/75545dou.gif)
用于存放订单号
![](/icons/75545dou.gif)
每当插入
![](/icons/75545yi.gif)
行时
![](/icons/75545dou.gif)
系统自动生成
![](/icons/75545yi.gif)
个值
![](/icons/75545dou.gif)
存放进这个字段
![](/icons/75545dou2.gif)
可以用OPERATION NAVIGATOR查看它
![](/icons/75545de.gif)
内容
![](/icons/75545dou2.gif)
Character type DB2/400
![](/icons/75545de.gif)
CHAR、VARCHAR类型和ORACLE中
![](/icons/75545de.gif)
VARCHAR2(n)类型相对应
![](/icons/75545dou.gif)
但是ORACLE中
![](/icons/75545de.gif)
VARCHAR2(n)类型仅用于存放较小
![](/icons/75545de.gif)
![](/icons/75545zifu.gif)
串
![](/icons/75545dou.gif)
这里
![](/icons/75545de.gif)
n小于4000
![](/icons/75545dou.gif)
因此在这种情况下
![](/icons/75545dou.gif)
最好用定长
![](/icons/75545de.gif)
CHAR(N)类型和ORACLE
![](/icons/75545de.gif)
VARCHAR2(n)相对应
![](/icons/75545dou.gif)
这样不仅可以提高效率
![](/icons/75545dou.gif)
还可以节省存储空间
![](/icons/75545dou.gif)
若使用VARCHAR(n)类型最好用ALLOCATE参数
![](/icons/75545dou.gif)
这样可以提高数据库
![](/icons/75545de.gif)
性能,它可以减少内存和硬盘的间
![](/icons/75545de.gif)
输入/输出操作
![](/icons/75545dou2.gif)
要注重DB2/400中
![](/icons/75545de.gif)
![](/icons/75545zifu.gif)
串中文输入问题
![](/icons/75545dou.gif)
要想在DB2/400上输入中文应用这样
![](/icons/75545de.gif)
SQL创建表
![](/icons/75545dou.gif)
这里
![](/icons/75545de.gif)
CCSID 935,代表简体中文