DB2中的数据导入导出分别为:Import与Export
导入导出的格式:
DEL:界定的ASCII文件,行分隔符与列分隔符将数据分开
ASC:定长的ASCII文件,行按照行分隔符分开,列定长
PC/IXF:只能用在DB2之间导数据,根据类型数字值被打包成十进制或者二进制,字符被保存为ASCII,只保存变量已经使用的长度,文件中包括表的定义和表的数据
WSF:工作表方式导入导出,这种格式的文件类型用的比较少
DB2中对不同的数据导入导出方式,支持不同的文件类型:
export:导出数据,支持IXF,DEL或WSF
import:导入数据,可以向表中导入数据,支持上面提到的4种文件类型。
load:导入数据,功能和import基本相同,支持以上说的几种文件类型。
导出
基本的语法:
export to filename of filetype select * from table
例:
db2 "export to c:\t1.txt of del select * from table1"
导入
基本的语法:
import from filename of filetype insert into table
例:
db2 "import from c:/t1.txt of del insert into table1"
导入模式除了insert 还有:
INSERT 将输入数据添加到表中,并且不更改任何现有数据
INSERT_UPDATE 将新的输入数据添加到表中,或者用具有匹配主键值的输入数据更新现有的行
REPLACE (通过删除数据对象)删除表中的所有现有数据,然后再插入输入数据
REPLACE_CREATE 删除现有表中的所有数据,然后再插入输入数据。如果该表不存在,该模式将优先于插入输入数据而创建表。该模式只对PC/IXF 输入文件有效
导入示例:
利用n方法导入数据,并创建新表:
导出一个用例文件
db2 "export to d:\t1.ixf of ixf method n(a,b,c,d,e) select * from table1"
从文件中选取三列导入到表中,顺序可以不按照文件中原有的列的顺序
db2 "import from d:\t1.ixf of ixf method n(d,e,b) replace_create into t1test"
利用p方法导入数据
与n方法类似,p方法后面的列表中指明列的序号即可,不需要指明列名
db2 "import from d:\t1.ixf of ixf method p(4,5,2) replace into t1test"
导入的数据含有自增主键时
直接插入会导致插入失败,identityignore 忽略源自增字段插入
db2 "import from c:/t1.txt of del modified by identityignore insert into table1"
导入大量数据时
db2 "import from c:/t1.ixf of ixf modified by compound=100 insert into table1"
上面的命令中IMPORT会在每100条记录而不是每条记录插入后等待返回的SQL执行结果
设置commitcount 参数加快导入
db2 "import from c:/t1.ixf of ixf modified by compound=100 commitcount 1000 insert into table1"