怎样快速导入导出db2数据库导出sql脚本

db2 导入导出单个表的操作详解
db2 导入导出单个表的操作详解
1、导出整个数据库表结构、方法、存储过程等,执行脚本: db2look Cd dbname Ce Co db.sql Ci username Cw password db2 -tvf db.sql 2、单表数据的导出及导入: 导出:db2move dbname export -tn tablename -u db2user -p psw 导入:db2move dbname import -u db2user -p psw 3、数据库的备份、恢复: 备份:db2 BACKUP DATABASE dbname 恢复:db2 RESTORE DATABASE dbname 4、使用db2move命令导出、导入数据库数据 从另一数据库中导出初始化数据,首先进入导出的目录,先DB2cmd,后输入命令为:db2move dbname export Cu username Cp password。注:dbname 为原数据库名,username为用户名 password为密码。 恢复命令为: db2move dbname import -u username -p password 5、其它:. 导出到 一个文件获得sql语句 db2look -d cqyancao -e -o db.sql -i db2user -w psw 数据库名 要出文件名 用户名 密码 示例: db2look -d DEPARTMENT -u walid -e -o db2look.sql -- 这将生成由用户 WALID 创建的所有表和联合对象的 DDL 语句 -- db2look 输出被发送到名为 db2look.sql 的文件中 示例: db2look -d DEPARTMENT -z myscm1 -e -o db2look.sql -- 这将为模式名为 MYSCM1 的所有表生成 DDL 语句 -- 还将生成 $USER 创建的所有联合对象的 DDL。 -- db2look 输出被发送到名为 db2look.sql 的文件中 示例: db2look -d DEPARTMENT -u walid -m -o db2look.sql -- 这将生成 UPDATE 语句以捕获关于用户 WALID 创建的表/别名的统计信息 -- db2look 输出被发送到名为 db2look.sql 的文件中 示例: db2look -d DEPARTMENT -u walid -e -wrapper W1 -o db2look.sql -- 这将生成由用户 WALID 创建的所有表的 DDL 语句 -- 还将生成适用于包装器 W1 的用户 WALID 所创建所有联合对象的 DDL -- db2look 输出被发送到名为 db2look.sql 的文件中 示例: db2look -d DEPARTMENT -u walid -e -server S1 -o db2look.sql -- 这将生成由用户 WALID 创建的所有表的 DDL 语句 -- 还将生成适用于服务器 S1 的用户 WALID 所创建所有联合对象的 DDL -- db2look 输出被发送到名为 db2look.sql 的文件中 db2备份和导入单个表操作 db2 connect to 数据库名 user 登陆名 using 登陆密码 &db2 export to t1.ixf of ixf select * from 表名 &db2 import from t1.ixf of ixf insert into 目标表名或者新表名 导出库的数据格式还有两种del(文件格式)和wsf,但ixf格式信息最全, 包含表结构信息,可恢复出已删去的表。
H3C认证Java认证Oracle认证
基础英语软考英语项目管理英语职场英语
.NETPowerBuilderWeb开发游戏开发Perl
二级模拟试题一级模拟试题一级考试经验四级考试资料
软件测试软件外包系统分析与建模敏捷开发
法律法规历年试题软考英语网络管理员系统架构设计师信息系统监理师
高级通信工程师考试大纲设备环境综合能力
路由技术网络存储无线网络网络设备
CPMP考试prince2认证项目范围管理项目配置管理项目管理案例项目经理项目干系人管理
职称考试题目
招生信息考研政治
网络安全安全设置工具使用手机安全
生物识别传感器物联网传输层物联网前沿技术物联网案例分析
Java核心技术J2ME教程
Linux系统管理Linux编程Linux安全AIX教程
Windows系统管理Windows教程Windows网络管理Windows故障
数据库开发Sybase数据库Informix数据库
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&DB2 数据库创建、表的ixf文件导出导入示例
1.创建数据库
[db2inst1@localhost ~]$ db2set db2codepage=1208 #设置编码
[db2inst1@localhost ~]$ db2 create database wms automatic storage yes using codeset UTF-8territory cn pagesize 32768 #创建wms数据库
//指定db2数据库安装目录
db2 create db xxdb on /app/dbdata using CODEPAGE "GBK" country "Zh_CN"
2.导出表的ixf文件(如:exportReportData.sh)
toDir=/home/cpsinst/bup/
tab="UNTECK_ATTACHMENT_HIS UNTECK_BUSI_LOG UNTECK_DICT_ENTRY UNTECK_DICT_TYPE UNTECK_LOGIN_LOG UNTECK_MENU UNTECK_OPERATION UNTECK_ORGANIZATION UNTECK_PRIMARYKEY UNTECK_RESOURCE UNTECK_ROLE UNTECK_ROLE_RESOURCE UNTECK_USER UNTECK_USER_ROLE"
db2 connect to cpsdb
db2 set schema='ODSUSER'
for tabTemp in $tab
echo $tabTemp
db2 "export to ${toDir}/${tabTemp}.IXF of IXF select * from ${tabTemp}"
3. 导入表的ixf文件
db2 set schema=
db2 IMPORT FROM ETL_BUSI_TYPE.IXF OF IXF MODIFIED BY FORCECREATE COMMITCOUNT 10000 replace_create INTO ETL_BUSI_TYPE
db2 IMPORT FROM ETL_BUSI_TYPE_TOSEND.IXF OF IXF MODIFIED BY FORCECREATE COMMITCOUNT 10000 replace_create INTO ETL_BUSI_TYPE_TOSEND
db2 IMPORT FROM ETL_CONTACT_PEPOLE.IXF OF IXF MODIFIED BY FORCECREATE COMMITCOUNT 10000 replace_create INTO ETL_CONTACT_PEPOLE
如果您喜欢本文请分享给您的好友,谢谢!
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)DB2文件导入导出常见命令总结
Db2 的数据迁移,最常用的就是导入导出功能,而导入导出的命令貌似简单,实则内含玄机,千变万化,稍不留神,则错误百出,这儿就工作中常用到的命令,总结了一下,分享给大家!欢迎大家踊跃拍砖!J&&& 当然在这以前,我觉得有必要提及一点关于导入导出基础的知识!&&& DEL:界定的ASCII文件,行分隔符和列分隔符将数据分开。&&& ASC:定长的ASCII文件,行按照行分割符分开,列定长。&&& PC/IXF:只能用来在db2之间导数据,根据类型数字值被打包成十进制或者二进制,字符被保存为ASCII,只保存变量已经使用了的长度,文件中包括表的定义和表的数据。&&& WSF:工作表方式导入导出,这种格式的文件类型用的比较少。&&& Db2中对不同的数据导入导出方式,支持不同的文件类型,这里个人觉得很有必要注意的。&&& 文件类型 Import export load&&& -------------------------------------------------------&&& 定界 支持 支持 支持&&& 非定界 支持 不支持 支持&&& Ixf 支持 支持 支持&&& Wsf工作表 支持 支持 不支持&&& 关于3种导入导出操作进行简单的介绍:&&& export:导出数据,支持IXF,DEL或WSF&&& import:导入数据,可以向表中导入数据,支持上面提到的4种文件类型。&&& load:导入数据,功能和import基本相同。支持以上说的几种文件类型。&&& 关于Export&&& 这个其实比较简单,没啥好说的,一般命令:export to filename of filetype sel就ok了,这里需要注意的是:&&& 1. 关于不同字符集的导出&&& MODIFIED BY CODEPAGE=&&& Exprot to filename.del for del MODIFIED BY CODEPAGE=1386 select & from &where &;&&& 这里,在数据从数据库倒出来的时候就会做一个数据库代码页的转换&&& 2.时间字段格式化的&&& MODIFIED BY TIMESTAMPFORMAT="yyyy-mm-dd hh:mm:ss tt"&&& 例:Exprot to filename.del for del MODIFIED BY TIMESTAMPFORMAT="yyyy-mm-dd hh:mm:ss tt" select & from &where &;&&& 关于Import&&& 1.Import模式的介绍&&& CREATE/INSERT/INSERT_UPDATE/REPLACE/REPLACE_CREATE&&& CREATE :首先创建目标表和它的索引,然后将数据导入到新表中。该选项惟一支持的文件格式是 PC/IXF。还可以指定新表所在表空间的名称&&& INSERT :将导入的数据插入表中。目标表必须已经存在。&&& INSERT_UPDATE :将数据插入表中,或者更新表中具有匹配主键的行。目标表必须已经存在,并且定义了一个主键。&&& REPLACE :删除所有已有的数据,并将导入的数据插入到一个已有的目标表中。&&& REPLACE_CREATE :如果目标表已经存在,则导入实用程序删除已有的数据,并插入新的数据,就像 REPLACE 选项那样。如果目标表还没有定义,那么首先创建这个表以及它的相关索引,然后再导入数据。正如您可能想像的那样,输入文件必须是 PC/IXF 格式的文件,因为那种格式包含对导出表的结构化描述。如果目标表是被一个外键引用的一个父表,那么就不能使用 REPLACE_CREATE。&&& 2. 批量提交&&& COMMITCOUNT,保证insert的数据在COMMITCOUNT以后进行一次commit,这对于大数据量的导入文件来说是一个不错的方法,&&& 例:Import from filename of del COMMITCOUNT 50000
3. 批量插入&&& MODIFIED BY COMPOUND把文件中的 COMPOUND 行记录作为一组一起导入,这个操作可以和上边的批量提交一起使用,比较理想。&&& 例:Import from filename of del MODIFIED BY COMPOUND =50&&& 4. 导入记录限制&&& ROWCOUNT:只导入rowcount 条数据,有时候,业务逻辑需要只导入部分数据,那么ROWCOUNT是一个不错的选择,只是在我的测试中ROWCOUNT一直没有起过作用,呵呵,谁熟悉这里,帮我完善下。&&& 例:Import from filename of del ROWCOUNT 10000&&& 5. 导入起点&&& RESTARTCOUNT:从导入文件的第RESTARTCOUNT条记录开始导入&&& 例:Import from filename of del RESTARTCOUNT 55 ROWCOUNT 10000--从55条开始,导入10000条数据&&& 6. 有警告数据的条数限制&&& WARNINGCOUNT:当导入的数据中,有警告或错误(例如类型不匹配,列不对应等造成的)并且条数超过WARNINGCOUNT是就会停止import。&&& 例:Import from filename of del WARNINGCOUNT 10&&& 7. 禁止发出行警告&&& MODIFIED BY NOROWWARNINGS&&& 例:Import from filename of del MODIFIED BY NOROWWARNINGS WARNINGCOUNT 10&&& 8. LOB 文件&&& LOBS FROM :指出LOB的路径&&& 例:Import from filename of del LOBS FROM &/home& MODIFIED BY NOROWWARNINGS WARNINGCOUNT 10&&& 9. 对于自增序列(GENERATED ALWAYS)&&& 建议不要对自增序列的表进行import操作,因为import对于自增序列,只有MODIFIED BY IDENTITYIGNORE和MODIFIED BY IDENTITYMISSING的2中操作,这2中操作都会改变自增序列的原值,这样如果导出表和表之间有基于自增序列的关联关系的话,就失去了数据本身的意义,所以建议尽量少用基于import的自增表的操作,那该怎么做?可以用load老代替import,我们下来在load的操作中会讲到!&&& 关于Load&&& 1. 字符串间隔,列间隔,小数点表示&&& CHARDEL/COLDEL/DECPT&&& 例:LOAD CLIENT FROM 'F:\s1.del' OF DEL MODIFIED BY CHARDEL(COLDEL= DECPT? INSERT INTO "DB2ADMIN"."ZXTABLES"&&& 2.数据库记录中存在换行符,导致数据无法装入的情况&&& MODIFIED BY DELPRIORITYCHAR&&& Db2默认load优先级策略为,record delimiter, character delimiter, column delimiter,这样record delimiter得优先级最高,所以原始文件如果有换行的话load就认为是新的record,如果用户在某些情况下行里面包含了换行符(比如论坛里面的一条帖子,不可能把换行符删掉的),就必须用delprioritychar改变默认的优先级别,确保""之间的数据不管有没有换行符都被认为是同一条记录&&& 例:LOAD CLIENT FROM 'F:\s1.del' OF DEL MODIFIED BY DELPRIORITYCHAR INSERT INTO DB2ADMIN.ZXTABLES&&& 3.load后表空间暂挂的处理&&& Copy YES/ NONRECOVERABLE&&& 对于DMS表空间,load默认为copy NO 模式,此模式下,load完成后,表空间会处于暂挂状态,这时候只能查表中的数据,需要对表空间进行一次备份,才可以对表进行update、insert等操作,那么我们可以使用如上2个命令,对于Copy YES,load完成以后会自动进行一次备份操作;NONRECOVERABLE 指出load不可恢复,此命令符不会产生表空间暂挂,也不会自动进行表空间备份,但是他有一个缺点就是,不能恢复,当数据库进行回滚的时候,不能还原,危险等级还是比较高一点,不过个人觉得也NONRECOVERABLE比较实用。&&& 例:LOAD CLIENT FROM 'F:\s1.del' OF DEL INSERT INTO DB2ADMIN.ZXTABLES NONRECOVERABLE&&& LOAD CLIENT FROM 'F:\s1.del' OF DEL INSERT INTO DB2ADMIN.ZXTABLES COPY YES&&& 4. load IXF类型文件到多分区数据库&&& partitioned db configmode load_only_verify_part part_file_location&&& 当数据在2个不同数量节点的数据库之间移动,如果还想使用load来进行IXF的数据装载就比较棘手了,当时查遍IBM的官方文档均无所获,正郁郁不安时,狼出现了,给支了一招,现分享给大家。
相关报道:
新闻热线:010-
责任编辑:lujq
名企动态: |
标志着Windows迈出个性化计算的第一步……
本站特聘法律顾问:于国富律师
Copyright (C) 1997-将一个数据库中表的数据导入另一个数据库(DB2)
来源:博客园
将一个数据库中的数据导入另一个数据库(DB2)
我这里举得例子是使用的DB2数据库,其他数据库思路也是这样啦!
1、从db2 数据库中将表中的数据导入本地的excel中

export to d:\mytest.xls of del modified by nochardel coldel0x09 select * from IOUT_BUSI_YWDJMX_TEMP

2、在需要导入的数据库建立一个临时表

--创建临时表
CREATE TABLE NBADV.l_hzcitywa
(

fhcode varchar(20),
dhcode varchar(20),
away DECIMAL(19, 4)

)
DATA CAPTURE NONE
IN USERSPACE1@

ALTER TABLE NBADV.l_hzcitywa
LOCKSIZE ROW
APPEND OFF
NOT VOLATILE@

3、将excel另存为csv格式的文件,导入到数据库的临时表中

--将数据导入临时表
import from "D:\hz.csv" OF DEL INSERT INTO nbadv.l_hzcitywa@

4、对数据进行处理

--查出重复的数据
select distinct a.DELI_UNIT_CD,c.fhcode,a.ARRI_UNIT_CD,c.dhcode,count(c.away) from ST_I_STD_MILEAGE a 
inner join nbadv.l_hzcitywa c on a.DELI_CITY_NM=c.fhcode and a.ARRI_CITY_NM=c.dhcode
group by a.DELI_UNIT_CD,c.fhcode,a.ARRI_UNIT_CD,c.dhcode
having count(*)&1

--删除掉重复的数据
delete from nbadv.l_hzcitywa where dhcode in ('北京','东莞','拉萨','天水','酒泉','平凉','庆阳','铜川','咸阳','烟台')@

5、处理后的数据通过db2存储过程将所需要的数据更新到第二个数据库的表中,这里关键是找到临时表与需要更新数据的表中的关联关系;

--创建存储过程,更新合同里程
drop procedure L_getcityway@

create procedure L_getcityway(
in v_personId
int
)
language sql
dynamic result sets 0

begin
declare sqlcode int;
declare sqlstate char(5);
declare v_errcode int default 0;


--更新合同里程
merge into ST_I_TRANS_MILEAGE a
using (
select distinct a.DELI_UNIT_CD,c.fhcode,a.ARRI_UNIT_CD,c.dhcode,c.away from ST_I_STD_MILEAGE a 
inner join nbadv.l_hzcitywa c on a.DELI_CITY_NM=c.fhcode and a.ARRI_CITY_NM=c.dhcode and c.fhcode= '渭南'
)b
on a.DELI_STORE_CD=b.DELI_UNIT_CD and a.ARRI_STORE_CD=b.ARRI_UNIT_CD
when matched then 
update set a.ACTUAL_MILEAGE=b.

--计算差异
update ST_I_TRANS_MILEAGE set DIFFERENCE=(ACTUAL_MILEAGE-STD_MILEAGE)*100.000000/STD_MILEAGE where DELI_STORE_CD= and STD_MILEAGE is not null and STD_MILEAGE&&0;


--更新备注
update ST_I_TRANS_MILEAGE set REMARK='无' where DIFFERENCE&10 and DELI_STORE_CD in ('','','','','');

return v_

end@

到此,已经实现从第一个数据库的表中的数据更新到第二个数据库中了;
免责声明:本站部分内容、图片、文字、视频等来自于互联网,仅供大家学习与交流。相关内容如涉嫌侵犯您的知识产权或其他合法权益,请向本站发送有效通知,我们会及时处理。反馈邮箱&&&&。
学生服务号
在线咨询,奖学金返现,名师点评,等你来互动

我要回帖

更多关于 db2数据库导入导出 的文章

 

随机推荐