db2 load 快速_db2 load 用法

要实现一个简单的业务功能,从一张表中把数据导入另一张表.由于数据量非常大,放弃了INSERT,SELECT方法.db2的实现有两种方法一个是EXPORT

及LOAD,import也可以只是他不形成日志.所以不成功的数据不能进行回滚,所以采用LOAD,这种方法适用于两不同的数据库,但是因为EXPORT要导出数据到本地然后再从本地LOAD到数据库.所以直接采用第二种方法.load

of

cursor.从一个结果集中导入.另外LOAD,EXPORT,IMPORT只能在系统存储过程SYSPROC.ADMIN_CMD中支持.我的存储过程如下,这是写的第一个DB2的存储过程.搞了半天最终在IBM工程师的指导下才完成.历尽千辛万苦啊,不容易啊.

创建了一个广本文件pro.sql文件内容如下:

drop procedure EXPORT_AND_LOAD@

CREATE PROCEDURE EXPORT_AND_LOAD(IN fatab_name varchar(100),IN

jytab_name varchar(100))

LANGUAGE SQL

BEGIN

DECLARE stmt VARCHAR(300);

SET stmt='CALL SYSPROC.ADMIN_CMD ('' load from (select * from ' ||

fatab_name || ' ) of

cursor insert into ' || jytab_name || ''')'

;

PREPARE s1 FROM stmt;

execute s1 ;

END@

由于表名是动态的所以用了动态SQL语句,在这堆"'"号就折腾了很长时间.

到DB2的控制中心执行不成功.无奈到DB2的命令行执行.

开始为:

db2=>connect to

db2=>!db2 -td@ -vf c:\pro.sql

执行也不成功.最后IBM告诉我要这样:

db2=>connect to

db2=>quit

C:\Program Files\IBM\SQLLIB\BIN>db2 -td@ -vf

c:\pro.sql

终于执行成功了!!!!!!!!!!

可以select * from syscat.procedures

where procname='EXPORT_AND_LOAD'去查看一下.

DB2LOAD 是 IBM DB2 数据库的一个命令行工具,用于将外部数据文件快速导入到 DB2 数据库中,相比 DB2Import,DB2LOAD 的导入速度更快,支持更多的数据格式和选项。 以下是使用 DB2LOAD 的基本步骤: 1. 准备数据文件:将要导入的数据保存为文本文件,并按照 DB2LOAD 要求的格式进行编写。DB2LOAD 支持多种数据格式,如 DEL(分隔符分隔的文本文件)、IXF(DB2 数据库导出文件)、ASC(ASCII 格式文本文件)等。 2. 创建目标:使用 DB2 控制台或命令行创建一个空的目标,与数据文件中的数据字段对应。 3. 编写控制文件:创建一个文本文件,指定数据文件的路径、格式、分隔符等信息,以及要导入数据的目标名和字段名等信息。具体格式可以参考 DB2 官方文档。 4. 运行 DB2LOAD 命令:在命令行中输入类似于以下的命令: ``` db2 load from controlfile ``` 其中,controlfile 是控制文件的路径和名称。 5. 等待导入完成:DB2LOAD 会根据控制文件的信息自动读取数据文件并将数据逐行插入到目标中,导入完成后会显示导入的行数和花费的时间。 注意事项: - DB2LOAD 的控制文件必须以 ASCII 编码保存,否则可能导致中文乱码等问题。 - DB2LOAD 支持多种选项和标志,可以通过 db2 load --help 命令查看文档了解更多信息。 - 在使用 DB2LOAD 导入大量数据时,建议先将目标的约束和索引等对象删除,导入完成后再重建这些对象,以提高导入速度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值