当前位置:数据库 > Oracle >>

从ORACLE移植到DB2

从ORACLE移植到DB2
 
DB2和Oracle的数据类型比较
 
下面我通过一些具体的实例来详细演示DB2和Oracle的区别:
一、日期
Oracle的日期用法: 
Create table date_demo
( day_demo varchar2(25),
  actualDate DATE,
  detaildate DATE
);
 
插入数据
insert into date_demo values ('new years',to_date('01-02-2002','DD-MON-YYYY'),
to_date('01-02-2002','DD-MON-YYYY'),
...;
 
查看结果:
select * from date_demo;
day_demo         actualDate    detaildate 
-------------    --------------   ------------
new years          01-02-2002     01-02-2002
new years          01-02-2002     01-02-2002
......;
 
DB2的日期用法: Create table date_demo
( day_demo char(25),
  actualDate DATE,
  detaildate DATE
);
 
插入数据
insert into date_demo values ('new years',('01-02-2002'),
to_date('01-02-2002'),
......;
 
查看结果:
select * from date_demo;
day_demo           actualDate       detaildate 
---------------    --------------   ------------
new years          01-02-2002       01-02-2002
new years          01-02-2002       01-02-2002
......;
 
二、序列
Oracle的序列用法: create table dep (deptno smallint not null,
deptname varchar2(36) not null,
mgrno char(6),
admrdept smallint not null,
location char(30));
create sequence dept_seq start with 200 increment by 1;
 
接着
insert into dept values
(dept_seq.nextval,'sales','smith',55,'downtown'),
(dept_seq.nextval,'marketing','wong',12,'midtown'),
(dept_seq.nextval,'accounting','fisher',300,'uptown');
select * from dept;
 
DB2的序列用法: 
首先建表:
create table dept 
(deptno smallint not null generated always as identity(start with 200,
increment by 1),
deptname varchar(36) not null,
location char(30));
 
接下来插入数据
insert into dept values
(default,'sales','smith,50,'downtown'),
(default,'marketing','wong',23,'midtown'),
(default,'accounting','fisher'200,'uptown');
 
查询结果: 
select * from dept;
 
结果和Oracle 的一样。
三、截断大的数据表的内容
Oracle在截断大的数据表提供了一个函数truncate,通过语句truncate table tab_name来清空表中的内容并重组表的空间,truncate 是DDL语句不能回滚。 
DB2不支持truncate语句,但提供另外二种方法来解决上面的问题。 
(1) 在建表时加选项not logged initially ,当清空表时通过alter table [name] activate not logged initially with empty table 
(2)首先在操作系统上建一个空文件empty.del,接着通过import命令import from empty.del of del replace into [table_name]来清空表中的数据并重组表空间。
 
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,