在实际的软件项目的开发过程中,特别是在企业的应用系统集成(EAI)项目中广大开发人员经常遇到不同关系型数据库之间的数据移植问题。笔者根据自己在工
作中的不同数据库数据移植的经验经过通用化的java应用程序,演示把数据从Oracle数据库移植到DB2数据库中。
当然也可以应用其它支持JDBC和ODBC的关系型数据库。
本议题分为二部分:
一、Oracle和DB2数据库对象的异同
二、把数据从Oracle移植到DB2的Java应用程序的详细分析.详见 从Oracle 到DB2(二)
Oracle和DB2数据库对象的异同
首先让大家快速的熟悉一下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]来清空表中的数据并重组表空间。
以上是我在使用Oracle 和DB2数据库的过程中总结的不通点,更多的不通可以查阅相关的手册。
通过上面的介绍相信大家对Oracle和DB2的区别会有一定程度的了解,下一篇将在这一篇的基础上介绍如何把Oracle中的数据移植到DB2数据库中来。
相关推荐
### ORACLE移植DB2注意事项 在进行Oracle到DB2数据库移植的过程中,需要注意多个方面的差异,以确保移植后的应用能够正常运行。以下将详细介绍几个关键点: #### 1. 字符串与数字的区别处理 在Oracle中,如果在...
这一转换对于从 Oracle 迁移到 DB2 的应用尤为重要,因为两种数据库在处理递归查询方面有着显著的不同。 #### 递归查询概述 递归查询用于解决层级关系数据问题,例如查找组织结构中的员工和他们的上级主管。Oracle ...
"ORACLE 到 DB2 应用移植方法探讨" 本文从应用移植的角度描述了 ORACLE 和 DB2 存在的一些差异,列举了几种移植方案,结合作者参与的项目,对基干 MTK 的移植方案:MTK 移植工具的应用和两个数据库系统中不兼容的...
数据移植是IT行业中常见的任务,尤其在数据库管理系统之间,如从DB2到Oracle的迁移。这个过程涉及到数据的完整性和一致性,确保业务连续性不受影响。以下是对标题和描述中所述知识点的详细说明: 1. **数据转换器**...
问: 客户要从 Oracle 移植到 DB2 UDB,而待移植项目之一就是序列 ID。但是,他们却发现 DB2 UDBV7 中的序列 ID 是在行插入时内部生成的,于是想要知道如何获得所插入行的 ID,以在其应用程序中显示。如果他们需要...
本文将详细介绍如何从Oracle数据库平滑过渡到IBM DB2,以及这一转变带来的六大好处。 #### 二、从Oracle迁移到IBM的六大原因 ##### 1. **性能提升** - **案例**:Maschinenfabrik Reinhausen是一家特种工程和制造...
在使用工具进行移植时,系统将 Oracle 的 Date 对应到 timestamp。例如,在 Oracle 中可以使用 To_char(dTime,’yyyy-mm-dd hi24:mi:ss’) 将日期型数据转化为字符型,而在 DB2 中可以使用 To_char(dTime,’yyyy-mm-...
在IT行业中,数据库管理系统...总之,从DB2到Oracle的数据迁移是一项复杂的工作,需要对两个数据库系统有深入的理解。通过合理的规划、选择合适的工具和方法,以及充分的测试,可以确保迁移的成功并最小化业务中断。
JDBC(Java Database Connectivity)是Java平台中的一个标准接口,它允许Java应用程序连接到各种类型的数据库,包括Oracle、DB2和Informix。这个"oracle、db2、informix数据库的jdbc包"包含的就是这三个数据库的JDBC...
### 数据库移植注意事项(SQLSERVER, ORACLE, DB2) 在进行数据库移植时,尤其是在不同的数据库管理系统之间迁移数据和逻辑时,有许多重要的注意事项和技术差异需要特别关注。本文将根据提供的文件内容,详细介绍在...
Oracle 数据迁移到 DB2 数据库是一项常见的任务,特别是在企业级应用中,可能因为各种原因需要进行数据平台的更换。下面将详细介绍如何实现这个过程,主要包括表结构迁移和表数据迁移两个主要步骤。 **1. 表结构...
Oracle和DB2都支持多种操作系统,包括Linux、Windows、Unix等,但在跨平台能力上,Oracle的移植性被认为更好。Oracle数据库可以在不同的硬件和软件平台上无缝运行,而DB2在某些特定环境下可能需要更多的配置和调整...
在DB2中,移植可能涉及到不同版本之间的升级,或是从其他数据库系统如Oracle、MySQL等向DB2的迁移。关键步骤包括数据库结构分析、数据转换、应用代码调整和测试验证。 2. **数据库转换**:转换更侧重于数据的格式、...
### 四大数据库的比较(SQL Server、Oracle、Sybase和DB2) #### 开放性 **SQL Server:** 仅限于Windows操作系统上运行,缺乏跨平台能力。这对于那些希望在不同操作系统之间灵活迁移的企业来说可能是一个限制因素...
SQL PL 和 PL/SQL 差异巨大,这也是从 Oracle 到 DB2 转型最大的工作量所在。 六、置包 Oracle 数据库提供了很多置包:DBMS_OUTPUT、DBMS_SQL、DBMS_ALERT、DBMS_PIPE、DBMS_JOB、DBMS_LOB、DBMS_UTILITY、UTL_...
DB2和Oracle是两种广泛应用的关系型数据库管理系统,它们在SQL语法上存在一些显著的差异,这使得在跨数据库系统开发时需要特别注意兼容性问题。以下是一些主要的区别点: 1. **数据类型转换函数**: - Oracle允许...
- **可移植性**:SQLJ支持多种数据库系统,如Oracle、DB2等。 - **代码简洁**:通过SQLJ,可以在Java中直接使用SQL语句,无需繁琐的数据处理代码。 - **性能优化**:编译器能够优化SQL语句的执行计划,提高查询效率...
为了使用方便而整理的oracle+DB2+Informix三种数据库常用数据类型的比较,有利于数据库移植时参考一下。
可以是同一数据库管理系统的不同版本,也可以是不同的数据库管理系统,如DB2、Oracle、Sybase、Informix、SQL Server等。 实现异构数据库的集成一般有两种方法:一是将原有的数据移植到新的数据库管理系统中来,...
DB2支持将数据库管理扩展到并行的多节点环境。数据库分区是数据库的一部分,包含自己的数据、索引、配置文件和事务日志。 #### 安全认证 - **SQL Server**:未获得任何官方的安全认证。 - **Oracle**、**Sybase ...