DB2文件导入导出常见命令总结 (db2文件导入数据库)

教程大全 2025-07-15 12:42:15 浏览

的数据迁移,最常用的就是 导入导出 功能,而导入导出的命令貌似简单,实则内含玄机,千变万化,稍不留神,则错误百出,这儿就工作中常用到的命令,总结了一下,分享给大家!

当然在这以前,我觉得有必要提及一点关于导入导出基础的知识!

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 select x From xx where ;就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 insert into tabname;

3. 批量插入

MODIFIED BY COMPOUND把文件中的 COMPOUND 行记录作为一组一起导入,这个操作可以和上边的批量提交一起使用,比较理想。

例:Import from filename of del MODIFIED BY COMPOUND =50 insert into tabname;

4. 导入记录限制

ROWCOUNT:只导入rowcount 条数据,有时候,业务逻辑需要只导入部分数据,那么ROWCOUNT是一个不错的选择,只是在我的测试中ROWCOUNT一直没有起过作用,呵呵,谁熟悉这里,帮我完善下。

例:Import from filename of del ROWCOUNT 10000 insert into tabname;

5. 导入起点

RESTARTCOUNT:从导入文件的第RESTARTCOUNT条记录开始导入

例:Import from filename of del RESTARTCOUNT 55 ROWCOUNT 10000 insert into tabname;–从55条开始,导入10000条数据

6. 有警告数据的条数限制

WARNINGCOUNT:当导入的数据中,有警告或错误(例如类型不匹配,列不对应等造成的)并且条数超过WARNINGCOUNT是就会停止import。

例:Import from filename of del WARNINGCOUNT 10 insert into tabname;

db2文件导入数据库

7. 禁止发出行警告

MODIFIED BY NOROWWARNINGS

例:Import from filename of del MODIFIED BY NOROWWARNINGS WARNINGCOUNT 10 insert into tabname;

8. LOB 文件

LOBS FROM :指出LOB的路径

例:Import from filename of del LOBS FROM ‘/home’ MODIFIED BY NOROWWARNINGS WARNINGCOUNT 10 insert into tabname;

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

关于DB2文件导入导出常见命令就为大家总结这么多,希望大家都能够从上文中涉及到的内容中有所收获。

【编辑推荐】


用pl/Sql developer 导出数据的方式有哪些

用pl/sql developer 导出数据的方式有如下三种方式:第一种是导出为的文件格式,文件是二进制的,可以跨平台,还能包含权限,效率也很不错第二种是导出为文件的,可用文本编辑器查看,通用性比较好,但效率不如第一种,适合小数据量导入导出。 尤其注意的是表中不能有大字段(blob,clob,long),如果有,会提示不能导出(提示如下:table contains one or more LONG columns cannot export in sql format,user Pl/sql developer format instead),可以用第一种和第三种方式导出。 第三种是导出为格式的,为Pl/sql developer自有的文件格式,只能用Pl/sql developer自己导入导出;不能用编辑器查看。

如何对db2中的数据库进行数据分析

1、 打开命令行窗口 #db2cmd 2、 打开控制中心 # db2cmd db2cc 3、 打开命令编辑器  db2cmd db2ce =====操作数据库命令===== 4、 启动数据库实例 #db2start 5、 停止数据库实例 #db2stop  如果你不能停止数据库由于激活的连接,在运行db2stop前执行db2 force application all就可以了 /db2stop force 6、 创建数据库 #db2 create db [dbname] 7、 连接到数据库 #db2 connect to [dbname] user [username] using [password] 8、 断开数据库连接 #db2 connect reset 9、 列出所有数据库  #db2 list db Directory 10、 列出所有激活的数据库 #db2 list active db2 export to of del select * from cmmcode where codtp=01 db2 export to of del modified by coldel| select * from cmmcode where codtp=01 三、查询数据结构及数据: db2 select * from btpoper db2 select * from btpoper where brhid= and oprid=0001 db2 select oprid,oprnm,brhid,passwd from btpoper 四、删除表中数据: db2 delete from btpoper db2 delete from btpoper where brhid= or brhid= 五、修改表中数据: db2 update svmmst set prtlines=0 where brhid= and jobtp=02 db2 update svmmst set prtlines=0 where jobtp=02 or jobtp=03 六、联接数据库 db2 connect to btpdbs 七、清除数据库联接 db2 connect reset 断开数据库连接 db2 terminate 断开数据库连接 db2 force applications all 断开所有数据库连接 八、备份数据库 1、 db2 backup db btpdbs 2、 db2move btpdbs export db2look -d btpdbs -e -x [-a] -o 九、恢复数据库 1、 db2 restore db btpdbs without rolling forward 2、 db2 -tvf 文件内容:create db btpdbs on /db2catalog db2 -stvf db2move btpdbs import 十、DB2帮助命令: db2 ? db2 ? restroe db2 ? sqlcode (例:db2 ? sql0803) 注:code必须为4位数,不够4位,前面补0 十一、bind命令:将应用程序与数据库作一捆绑,每次恢复数据库后,建议都要做一次bind (1) db2 bind (2) /btp/bin/bndall /btp/bnd /btp/bin/bndall /btp/tran/bnd 十二、查看数据库参数: db2 get dbm cfg db2 get db cfg for btpdbs 十三、修改数据库参数: db2 update db cfg for btpdbs using LOGBUFSZ 20 db2 update db cfg for btpdbs using LOGFILSIZ 5120 改完后,应执行以下命令使其生效: db2 stop db2 start

DB2导出表结构,能不能只导出指定的表结构。求大神指教,给出命令哈

可以导出指定表的表结构在控制中心(Control Center)里,右键这个表,有导出表结构的选项

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐