【DB2】db2命令Export与Import

环境准备

1.新建表

qinys@Linux:~> db2 "create table tb1(id int,dt timestamp,name varchar(100))";
DB20000I  The SQL command completed successfully.

2.插入数据

qinys@Linux:~> db2 "insert into tb1 values(1,current timestamp,'Jack')";
DB20000I  The SQL command completed successfully.
qinys@Linux:~> db2 "insert into tb1 values(2,current timestamp,'Numy')";
DB20000I  The SQL command completed successfully.

3.创建新表(为Import贮备)

qinys@Linux:~> db2 "create table tb1_tmp like tb1";
DB20000I  The SQL command completed successfully.


DB2中的数据导入导出分别为:Import与Export

DEL:界定的ASCII文件,行分隔符与列分隔符将数据分开

ASC:定长的ASCII文件,行按照行分隔符分开,列定长

PC/IXF:只能用在DB2之间导数据,根据类型数字值被打包成十进制或者二进制,字符被保存为ASCII,只保存变量已经使用的长度,文件中包括表的定义和表的数据

WSF:工作表方式导入导出,这种格式的文件类型用的比较少

DB2中对不同的数据导入导出方式,支持不同的文件类型:

文件类型ImportExport Load
定界 支持 支持 支持
非定界 支持 不支持 支持
ixf 支持 支持 支持

wsf工表表

支持 支持 不支持


关于3种导入导出操作进行简单的介绍:
export:导出数据,支持IXF,DEL或WSF
import:导入数据,可以向表中导入数据,支持上面提到的4种文件类型。   
load:导入数据,功能和import基本相同。支持以上说的几种文件类型。

Export与Import注意事项

<1>不同字符集、字段含有TIMESTAMP格式

导出

qinys@Linux:~> db2 "export to Exp.dat of del MODIFIED BY CODEPAGE=1386 TIMESTAMPFORMAT=\"yyyy-mm-dd hh:mm:ss tt\" SELECT * FROM tb1"
SQL3104N  The Export utility is beginning to export data to file "Exp.dat".

SQL3105N  The Export utility has finished exporting "2" rows.


Number of rows exported: 2


CODEPAGE=1386 是指在数据导出时,做一个数据库代码页的转换

1208→GBK

1386→UTF-8

导入

qinys@Linux:~> db2 "import from Exp.dat of del MODIFIED BY CODEPAGE=1386 TIMESTAMPFORMAT=\"yyyy-mm-dd hh:mm:ss tt\"  INSERT INTO tb1_tmp";
SQL3109N  The utility is beginning to load data from file "Exp.dat".

SQL3110N  The utility has completed processing.  "2" rows were read from the
input file.

SQL3221W  ...Begin COMMIT WORK. Input Record Count = "2".

SQL3222W  ...COMMIT of any database changes was successful.

SQL3149N  "2" rows were processed from the input file.  "2" rows were
successfully inserted into the table.  "0" rows were rejected.


Number of rows read         = 2
Number of rows skipped      = 0
Number of rows inserted     = 2
Number of rows updated      = 0
Number of rows rejected     = 0
Number of rows committed    = 2

Import导入大量数


db2 import from 数据文件名 of ixf modified by compound=100 insert into 表名

上面的命令中IMPORT会在每100条记录而不是每条记录插入后等待返回的SQL执行结果。

设置commitcount 参数加快导入

db2 import from 数据文件名 of ixf modified by compound=100 commitcount 10000 insert into 表名

posted @ 2018-02-08 14:38  OLIVER_QIN  阅读(20544)  评论(1编辑  收藏  举报