壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 437|回复: 0

ORACLE开发技术学习从ORACLE移植到DB2

[复制链接]
发表于 2013/6/18 14:36:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
     从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]来清空表中的数据并重组表空间。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/29 06:35 , Processed in 0.015506 second(s), 18 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表