oracle数据与db2数据转换表

上一篇 / 下一篇  2011-01-12 09:31:00

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

 

 

NUMBER

 Oracle中的NUMBER类型能对应DB2/400中的非常多类型,这种对应关系要依赖于Oraclenumber将用于保存何种类型的数据,是整型还是带有小数位的实型数据,另外还要考虑类型所占用的存储空间,例如:SAMLLINT2 byte, INTEGER4 byte; BIGINT8 byte;Oracle中的NUMBER类型所占用的存储空间要根据他的定义而定,例如缺省精度下的NUMBER38个数字长,占用20 byte的空间。具体的对应关系请参照上表。

 

ROW and LOB类型

DB2/400提供VARCHARCLOBOracel中的RAWLONG RAW相对应。Oracle也支持大对象:BLOBCLOBCLOBNCLOB, Oracle中的BLOBCLOB能提供4GB的空间,而DB2/400中的BLOBCLOB只能存放2GB的数据;DB2/400中的DBCLOBOracle中的NCLOB 2GB相对应。Oracle中的BFILE数据类型用于管理数据库以外的二进制数据,数据库中的表将指向数据库外部的存放的BFILE文件,DB2/400也提供一个类似的数据类型DATALINK相对应。

 

ROWID

Oracle ROWIND虚拟列用于对表中的某一列进行唯一标示,DB2/400中也有这样的数据类型ROWID,他和Oracle中的ROWID的功能相似。DB2/400中的ROWID能存放40 byte的数据用来唯一标示表中的每一行,他没有ccsid属性,这些信息中没有关于datafileblockrow的信息。

 

例如:

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

 

Character type

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

 

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

 


TAG: 数据库

 

评分:0

我来说两句

日历

« 2024-04-18  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 14871
  • 日志数: 23
  • 文件数: 1
  • 书签数: 1
  • 建立时间: 2011-01-06
  • 更新时间: 2012-01-29

RSS订阅

Open Toolbar