DB2的导入导出实例

来源:互联网 发布:java线程 终止 编辑:程序博客网 时间:2024/04/27 14:32

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

 

export命令用来对db2表进行导出。export支持的数据导出的类型:del,wsf,ixf,主要使用ixf和del。最好使用ixf。

导出Excel表格

输入导出语句EXPORT TO D:\A53new.csv OF DEL  SELECT * FROM DB2INST1."A53_SCALE_SR_TEST"    order by explaza_id,enplaza_id,vehicle_type,按回车;

之后再用 Excel 打开a53new.csv 可以将其另存为 .xls文件。


例一:普通导出。 
        EXPORT TO 'D:\test\org.ixf' OF IXF
        MESSAGES 'D:\test\org.msg'
        SELECT * FROM org; 
例二:改变del格式文件的格式控制符 
        EXPORT TO 'D:\test\org.ixf' OF DEL
         MODIFIED BY COLDEL$ CHARDEL'' DECPLUSBLANK
         MESSAGES 'D:\test\org.msg'
         SELECT * FROM org; 
      说明:在该例中,modified子句用于控制各种符号,coldel表示字段之间的间隔符,默认情况为逗号,现在改为$号;chardel表示字符串字段用什么符号引用,默认情况下为一对双引号括起来,现在改为用一对单引号括起来。 
例三:   
 EXPORT TO 'D:\TEM\MONTH.DEL' OF DEL 
 MODIFIED BY DECPLUSBLANK STRIPLZEROS
 SELECT P.CONFERCODE,P.STORECODE,P.ORGNAME,
 CAST(P.DGDD_THRLINE_NUM AS DECIMAL(12,2)),
 CAST(P.SZXCTK_THRLINE_NUM AS DECIMAL(12,2)) 
  FROM TBL_PAYMENT P;
    说明: decplusblank:表示对于十进制数据类型,用空格代替最前面的加号,因为默认情况下会在十进制数据前面加上正负号的
              striplzeros:指定移走数据前导的0,如:+00001.8–>+1.8
例四:
    EXPORT TO 'D:\TEM\MONTH.DEL' OF DEL  
    MODIFIED BY  CODEPAGE=1386 TIMESTAMPFORMAT="yyyy-mm-dd HH:mm:ss" 
    select * from TEST_NOLOG ;
     说明:CODEPAGE : 在数据从数据库倒出来的时候就会做一个数据库代码页的转换
               TIMESTAMPFORMAT:指定导出的日期时间格式。如果是日期类型导出,可以用modified by DATESISO 选项 来转换,转换后为(yyyy-mm-dd)格式,例如:
   EXPORT TO 'D:\TEM\MONTH.DEL' OF DEL  
    MODIFIED BY   TIMESTAMPFORMAT="yyyy-mm-dd HH:mm:ss"  DATESISO 
    select signdate  ,finishtime from TEST_NOLOG ;
 
    其中signdate为日期类型,finishtime 为timestamp类型。
例五:包含有Lob字段类型的数据导出
    EXPORT TO D:\TEM\LOBS\MYFILE.IXF OF IXF 
    LOBS TO D:\TEM\LOBS LOBFILE MYLOBFILE MODIFIED BY LOBSINFILE 
    SELECT * FROM TBLANNOUNCE;
说明:导出的MYFILE.IXF只包含了Lob类型字段的指针,真正的数据放在D:\TEM\LOBS目录下的MYLOBFILE文件里面。

导出时删除db2表字段中的换行符
export to 'd:\tem\test.del' of del
select  p.name,p.STATER,
replace(replace(p.SUGGEST,chr(13),''),chr(10),''),p.REMARK
from  TEST p ;
其中SUGGEST字段中含有换行符,导出后就在同一行了。

import支持的数据导入的方式有:
INSERT 方式——在表中现有数据的基础之上追加新的数据。
INSERT_UPDATE 方式——这种方式只能用于有主键的表,如果插入的数据与原有数据主键不冲突,则直接插入,如果主键冲突,则用新的数据代替原有数据。
REPLACE 方式——先把表中现有的数据都删除,然后向空表中插入数据。
REPLACE_CREATE 方式——表示如果表存在,则先把表中的数据都删除,然后向空表中插入数据;如果表不存在,则先根据文件中的字段创建表,然后再向表中插入数据。这种方式只能把IXF格式的文件中的数据插入到表中。

例一:普通导入    
    LOAD  FROM 'D:\tem\MONTH.DEL' OF IXF
    MESSAGES 'D:\test\org.msg'
    INSERT INTO org

例二:对于id是由GENERATE ALWAYS 生成的导入
    IMPORT FROM  C:\ORG2.IXF  OF IXF 
     MODIFIED BY  IDENTITYIGNORE  
     INSERT INTO ORG;
  
例三:对于lob字段的导入

IMPORT FROM 'D:\tem\lobs\myfile.ixf' OF IXF
 LOBS FROM 'D:\tem\lobs\'
 MODIFIED BY LOBSINFILE
 IDENTITYIGNORE
 REPLACE_CREATE INTO MYFILE;