关于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;