linux下db2中数据的导入、导出

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

导入导出的格式:

  • DEL:界定的ASCII文件,行分隔符与列分隔符将数据分开
  • ASC:定长的ASCII文件,行按照行分隔符分开,列定长
  • PC/IXF:只能用在DB2之间导数据,根据类型数字值被打包成十进制或者二进制,字符被保存为ASCII,只保存变量已经使用的长度,文件中包括表的定义和表的数据
  • WSF:工作表方式导入导出,这种格式的文件类型用的比较少

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

  1. export:导出数据,支持IXF,DEL或WSF
  2. import:导入数据,可以向表中导入数据,支持上面提到的4种文件类型。
  3. 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"

你可能感兴趣的:(linux,DB2,数据库)