DB2中的数据移动-装入

装入(Load)

装入命令格式与导入类似,命令关键字是Load,但是后面的参数比导入命令多的多,详细用法可以自行参考DB2文档。

装入与导入类似,都是将输入文件中的数据移入到目标表中,二者的不同点将在实例中逐步解释。

在装入之前,目标表必须已经存在。

装入的性能比导入高,原因在后面结合实例详细解释。

装入操作不记录到日志中,所以不能使用日志文件进行前滚操作。

装入分为4个阶段:

1. 装入阶段

在这个阶段发生两件事:数据存储在表中,收集索引键并排序。在装入时,DBA可以指定多长时间生成一致点。

它是装入工具的检查点。如果装入在执行期间被打断,它可以从最后一个一致点处开始继续重新执行。

2. 构建阶段

在构建阶段,基于在装入阶段收集的索引键信息创建索引。如果在构建阶段发生错误,装入工具就重启,它将从构建阶段开始处重新开始构建。

3. 在删除阶段,所有违反唯一或主键约束的行都被删除并拷贝到一个异常表(如果在语句中指定相应选项)中。当输入行被拒绝,消息文件中就生成消息。

4. 索引拷贝阶段

如果在装入操作期间为索引创建指定了系统临时表空间,并且选择了 READ ACCESS 选项,该索引数据将从系统临时表空间拷贝到原来的表空间。

装入过程的所有四个阶段都是操作的一部分,只有在所有的四个阶段都完成之后,该装入操作才算完成。在每个阶段都将生成消息,一旦其中的某个阶段发生错误,这些消息可以帮助DBA分析并解决问题。

导入操作每次插入一行数据时都要检查是否满足约束条件,并且记入日志文件中。

下面我们看一些LOAD命令特有的功能,IMPORT命令也能做的就不再详细说了。

例十二:从光标类型文件中进行装入

定义一个cursor

declare mycur cursor for select * from org

创建一个新表,结构与cursor相容

create table org2 like org

从cursor中装入

load from mycur of cursor insert into org2

除了可以从cursor中装入,还可以从文件、管道、设备中进行装入。而导入命令只能从文件中导入。

时间: 2024-11-17 23:21:35

DB2中的数据移动-装入的相关文章

DB2中的数据移动(一)_DB2

DB2中所谓的数据移动包括   1. 数据的导入Import   2. 数据的导出Export   3. 数据的装入Load   导入和装入都是利用DB2的相关命令把某种格式的文件中的数据保存到数据库中的表中   导出是指把DB2数据库的表中的数据保存到某种格式的文件当中去   数据移动的作用   如果要在不同的数据库管理系统之间转移数据数据移动通常是最实用的一种方法因为任何一种数据库管理系统都支持常用的几种文件格式通过这个通用的接口就很容易实现不同系统间数据的转移.   这三个命令中Expor

DB2中的数据移动

数据移动的作用: 如果要在不同的数据库管理系统之间转移数据,数据移动通常是最实用的一种方法,因为任何一种数据库管理系统都支持常用的几种文件格式,通过这个通用的接口,就很容易实现不同系统间数据的转移. 这三个命令中,Export最简单,因为从表中向文件转移数据,通常不会出现错误,也不会有非法的数据. 在讲解命令之前,首先介绍一下文件的格式,用于DB2数据移动的文件格式有四种: 1. ASC--非定界ASCII文件,是一个ASCII字符流.数据流中的行由行定界符分隔,而行中的每一列则通过起始和结束位

DB2中的数据值加密

[导读]本文描述如何使用 IBM DB2 Universal Database Version (Unix & Windows) 中提供的新函数轻松地将数据加密集成到数据库应用程序中. 多年来,数据库已经能够阻止未经授权的人看到其中的数据,这通常是通过数据库管理器中的特权和权限来实现的.在当前的环境下,对存储数据的保密的需求日益增长.这意味着即使 DBA 对表中的数据有完全的访问权限,但是表中可能还有数据拥有者不希望任何其他人看到的某些信息.特别是对于基于 Web 的应用程序,这一问题就更加明显

DB2卸载后怎样恢复原来数据库中的数据

问题:我不小心把DB2给卸载了,请问有什么方法恢复原来数据库中的数据啊?//bow : DB2卸载后还剩下DB2,DB2CTLSV 两个目录,但这两个目录都不大,请问DB2的数据库文件 : 是存在这两个目录下么?不是的话那就惨了. 回答:The database should be in DB2 directory. You have to reinstall db2. After that, issue the following command: db2 catalog db db_name

db2导出.del数据文件,请问如何将数据文件中的回车换行处理掉,使每条数据只占一行。

问题描述 db2导出.del数据文件,请问如何将数据文件中的回车换行处理掉,使每条数据只占一行. db2导出.del数据文件,文件中正常行分隔符为n,由于数据中某些字段的数据中含有回车换行,导致导出的数据一条数据占了不止一行,请问如何将数据文件中的回车换行处理掉,使每条数据只占一行. 解决方案 http://blog.csdn.net/xhsophie/article/details/41822287

插入操作-DB2 中如何将表中数据复制一份,改变表中一个联合主键的值,

问题描述 DB2 中如何将表中数据复制一份,改变表中一个联合主键的值, 如下: 表A有3个字段是联合主键(非自增长) create table A ( a VARCHAR(20) not null, b VARCHAR(100) not null, c VARCHAR(10) not null, constraint P_Key_1 primary key (a, b, c) ); 表中数据: a b c 1 2 0 1 3 0 如何将表中数据复制一份,改变表中一个联合主键的值,将字段"c&qu

如何从不同的数据库中取出数据置于同一数据窗口中

数据|数据库 在一次项目开发过程中需要从不同的数据库(eg: db1=ORACLE;db2=SYBASE)中取出数据方如同一个数据窗口中作为报表. 思路如下: 1. 创建两个tabular型的Datawindow, dw_oracle, dw_sybase. 2. 创建一个composite的Datawindow"dw_cmpst". 在这个数据窗口中置入dw_oracle和dw_syabse. 分别命名为"dw_orcl"和"dw_sbs".

DB2中SQLJ应用示例

示例|应用示例 // 本例展示怎样写用JDBC应用驱动程序存取DB2数据库的SQLJ应用.// 其中bank为DB2中的数据库,customer为bank中的表import java.sql.*;import sqlj.runtime.*;import sqlj.runtime.ref.*; #sql iterator App_Cursor1 (String customer_id, String customer_name) ;#sql iterator App_Cursor2 (String

ASP学习:不刷新页面筛选数据库中的数据

我在作asp程序时经常遇到这种情况: 将数据库中的数据(如所有雇员名)列在列表框中,程序要求进行选择其中一项或多项提交到下一个页面. 但麻烦的是如果数据(如雇员)过多,会给客户的选择带来麻烦--要从很长的列表中进行数据定位.最好的解决方法是用户在选择前采用模糊查询的方式进行数据定位,准确找出需要选择的雇员名,再选择.提交. 问题出现在我们程序员面前:如何不刷新页面筛选从数据库中筛选数据.本人的方法有两种: 1.采用双列表框的方法 2.采用XML方法 本文主要介绍第一种方法:采用双列表框的方法 编