db2的项目迁移到oracle
2012-05-21 12:43
197 查看
在db2中表的自增的主键,迁移到oracle时候,需要去创建sequence,并且需要去修改ibatis中的insert,因为在db2中主键为自增的,insert语句中不需要有主键那列,而在oracle中需要有主键那列,其值为XXXX.SEQ_TABLE_ID.nextval 其中XXXX.SEQ_TABLE_ID.nextval为主键的sequence。
在db2中创建的表,时间字段为timestamp类型的,可以定义其默认值为当前时间,定义方法如下:
create
table XXXX.TABLENAME
(
TABLE_ID INTEGER not
null generatedby
defaultas identity
(
start with 1,
increment by 1
),
COL1 VARCHAR(255) not
null,
COL2 VARCHAR(255) not
null,
COL3_CREATE_TIME TIMESTAMP not
null with
default current timestamp,
COL4_EXPIRE_TIME TIMESTAMP not
null,
COL5 INTEGER not
null,
constraint PK_TABLENAME primarykey ( TABLE_ID )
);
其中的COL3_CREATE_TIME定义为timestamp类型,默认值为当前时间,这样在db2中向表中插入数据时候不需要此列。
在oracle中没有找到怎么将timestamp类型设置为默认值是当前时间,所以将表定义语句修改为
create table XXXX.TABLENAME
(
TABLE_ID INTEGER not null ,
COL1 VARCHAR(255) not null,
COL2 VARCHAR(255) not null,
COL3_CREATE_TIME TIMESTAMP not null,
COL4_EXPIRE_TIME TIMESTAMP not null,
COL5 INTEGER not null,
constraint PK_TABLENAME primary key ( TABLE_ID )
);
这样在插入数据的时候,需要添加上COL3_CREATE_TIME这个字段,其值为CURRENT_TIMESTAMP ,ibatis中需要的写法如下:
<insertid="insertXXXXXXXXXXXXXXX">
<![CDATA[
INSERT INTO XXXX.TABLENAME ( TABLE_ID , COL1, COL2,
COL3_CREATE_TIME, COL4_EXPIRE_TIME, COL5 )
values(
XXXX.SEQ_TABLE_ID.nextval, #XX#, #XX#, CURRENT_TIMESTAMP, #XX#, #XX#)
]]>
</insert>在其中用CURRNET_TIMESTAMP获取当前时间。形式为2009-10-13
14:39:33.921
定义字段默认值为空且not null的写法如下
create
table XXXX.TABLENAME (
TABLE_ID INTEGER not
null,
COL1 VARCHAR2(255) default''
notnull,
constraint PK_ TABLENAME primarykey (TABLE_ID)
);
将db2的数据库中的数据以表为单位导入到oracle中去的时候,最好的办法是用Eclipse中自带的数据库连接工具导出再导入即可。这样可以解决数据中的timestamp导入的问题。
oracle中创建sequence的语句如下:
create sequence XXXX.SEQ_TABLE_ID
minvalue 1
nomaxvalue
start with 1
increment by 1
nocache
order;
db2和oracle还有以下区别:
db2中使用UCASE,Oracle中使用UPPER 。db2的项目的ibatis可以使用AS,oracle中必须将AS去掉。
在db2中插入timestamp类型的数据时候,直接在values中写'2009-08-30 12:50:44.531'即可,在oracle中需要在对应的列填写TO_TIMESTAMP('2009-08-30 12:50:44.531','YYYY-MM-DD HH24:MI:SS.FF')
相关文章推荐
- db2的项目迁移到oracle
- 从Oracle向DB2迁移的策略及最佳实践
- 数据库迁移.从DB2到Oracle
- db2迁移至oracle过程中的问题
- Oracle 项目就是那回事 ----数据库迁移(1)
- db2数据迁移到oracle
- 项目从mysql迁移到oracle
- Oracle 到 DB2 Version 9.1 for z/OS 迁移揭密!
- java项目,从Oracle迁移到达梦数据库笔记
- 从 Oracle 迁移到 DB2
- 【转】IBatis.Net项目数据库SqlServer迁移至Oracle
- 异构数据库迁移 db2---oracle
- Oracle迁移到DB2的策略及最佳案例
- db2迁移至oracle过程中的问题
- IBM DB2重磅组合拳欲绞杀Oracle 大型数据库迁移五大建议
- 项目从oracle迁移到sqlserver后,代码中分页的相对改动 编辑
- db2 迁移 oracle的一次经历
- 异构数据库迁移 db2---oracle
- IBatis.Net项目数据库SqlServer迁移至Oracle经验
- mydql--oracle项目迁移简说