在实际的软件项目的开发过程中,特别是在企业的应用系统集成(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注意事项,二者SQL语法有些差别哟。
问: 客户要从 Oracle 移植到 DB2 UDB,而待移植项目之一就是序列 ID。但是,他们却发现 DB2 UDBV7 中的序列 ID 是在行插入时内部生成的,于是想要知道如何获得所插入行的 ID,以在其应用程序中显示。如果他们需要...
ORACLE到DB2应用移植方法探讨.pdf
利用数据转换器移植数据,提供从db2导入到oracle,提供简单的表结构导出和数据移植
用于DB2数据库数据转移到ORACLE数据库,进行数据格式转换、数据移植等
数据库移植注意事项(SQLSERVER,ORACLE,DB2).txt
下面小编就为大家带来一篇oracle数据迁移到db2数据库的实现方法(分享)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
为了使用方便而整理的oracle+DB2+Informix三种数据库常用数据类型的比较,有利于数据库移植时参考一下。
从Oracle8i开始,为了在Internet发布Oracle数据库,Oracle的标识采用了全局服务名的概念。 (1) 全局服务名:为了区分整个网络范围内的数据库,全局服务名的格式一般是:servername.companyname.com, 类似与Internet...
从就业与择业的角度来讲,计算机相关专业的大学生从事oracle方面的技术是职业发展中的最佳选择。 其一、就业面广:全球前100强企业99家都在使用ORACLE相关技术,中国政府机构,大中型企事业单位都能有ORACLE技术的...
主要包含包含: PRDC: 服务框架抽象层,面向对象的调度框架(支持:WINDOWS,AIX,Solaris,LINUX). MDB: 内存数据库内核,支持DBMS自动加载,多机容错,分布式支持,容量无 ...8.支持从Oracle,Mysql,DB2等加载。
火龙果软件工程技术中心 本文内容包括:动机普通SQL过程使用临时表条件处理程序调优存在谓词CALL回避PVM中的SQLPL调优...当将应用程序从Oracle、Sybase或Microsoft:registered:SQL服务器迁移或移植到DB2中时,更是如此
5,783,223 在Linux操作系统中安装DB2、WAS集群、Oracle.pdf 351,411 cognos8.3安装配置for+DB2_Linux.docx 2,224,128 linux-cognos安装.doc 184,507 Cognos+8.3+I386+FOR+Linux64Bit安装文档.docx 449,...
通过FireDAC在更多设备上访问更多数据库:FireDAC使您能从Delphi中原生高速直接访问InterBase、SQLite、MySQL、SQL Server、Oracle、PostgreSQL、DB2、SQL Anywhere、Advantage DB、Firebird、Access、Informix、...
在一个平台上运行的程序可以很容易地移植到其他平台。DB2用户主要分布在金融、商业、铁路、航空、医院、旅游等领域,其中金融系统的应用最为突出。 常见的关系型数据库管理系统全文共2页,当前为第2页。常见的关系型...
从 PHP/FI 2 移植到 PHP 3 PHP 的调试 配置选项 php.ini 配置选项 所支持时区列表 扩展库分类 函数别名列表 保留字列表 资源类型列表 支持的协议/封装协议列表 可用过滤器列表 所支持的套接字传输器(Socket ...
从 PHP/FI 2 移植到 PHP 3 PHP 的调试 配置选项 php.ini 配置选项 所支持时区列表 扩展库分类 函数别名列表 保留字列表 资源类型列表 支持的协议/封装协议列表 可用过滤器列表 所支持的套接字传输器(Socket ...
数据库基础知识;;数据定义(Data Description Language,DDL) ...可移植性,MySQL可运行在各种版本的UNIX系统及其他非UNIX(如Windows和OS/2)系统上,从家用PC到高级服务器都可运行MySQL。 支持SQL语言,My
SQLAPI++ 2017 64位 可用dll,SQLAPI ++是一个C ++库,用于访问多个SQL数据库(Oracle,SQL Server,DB2,Sybase,Informix,InterBase,SQLBase,MySQL,PostgreSQL,SQLite,SQL Anywhere和ODBC)。它使用目标DBMS...