EXPORT命令详解
参考链接
https://www.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.admin.cmd.doc/doc/r0008303.html
语法
Export to filename of {IXF|DEL|WSF}
[lobs to lob-path[{,lob-path}...]]
[lobfile lob-file[{,lob-file}...]]
[modified by {filetype-mod...}]
[method n(column-name[{,column-name}...])]
[messages message-file]
{select-statement|hierarchy{starting sub-table-name|sub-table-name[{,sub-table-name}...]}}
[where ...]
参数详解
filename
必填项,用来指定生成文件的绝对路径以及文件名,例如:AIX系统下 export to /home/users.txt of del select * from users
{IXF|DEL|WSF}
必选项,3选1,不同格式搭配不同参数。
[lobs to lob-path[{,lob-path}...]]
可选项,用具体的例子才能讲解:
export to /home/operationlog.del of del
lobs to /home/lob/ lobfile lobs modified by lobsinfile select * from operation_log
文件DEL内容为:
"test1","2018-03-03","lobs.001.0.43690/"
"test2","2018-03-03","lobs.001.43690.29540/"
其中第三个字段是BLOB类型,在该文件中只保存了一个标志,相当于一个指针,真正的LOB数据保存在/home/lob/目录下的lobs.001、lobs.002等一系列文件中。命令中lobs to 后面指定大对象数据保存在什么路径下(注意,该路径必须事先已经存在,否则会报错),lobfile 后面指定大对象数据保存在什么文件中,不要指定扩展名,DB2会根据数据量自动追加.001、.002等扩展名,同时不要忘记加上modified by lobsinfile子句。
[lobfile lob-file[{,lob-file}...]]
可选项,功能参数上一节。
[modified by {filetype-mod...}]
可选项,具体作用可以理解为用什么符号来分割列,以及正数、负数、日期、小数、字符等该怎么格式化(个人理解,请大神指正)
NODOUBLEDEL
不识别双字符定界符,说白了就是不识别由2个字符组成的分隔符
LOBSINFILE
将LOB导出到DEL文件,与lobs、lobfile配合使用。
CHARDELx
指定x为新的单字符串定界符。默认值是双引号(“”)
表示字符串字段用什么符号引用,默认情况下为一对双引号括起来,现在改为用一对单引号括起来:
export to /home/staff.txt of del modified by chardel'' select * from users
COLDELx
指定x为新的单字符列定界符。默认值是双引号(,)
表示列与列之间的间隔符,默认情况为逗号,现在改为$号:
export to /home/staff.txt of del modified by coldel$ select * from users
DLDELx
十进制小数位字符(" % & ( ) * . / : ; < = > ? | , ' _
DECPLUSBLANK
表示对于十进制数据类型,用空格代替最前面的加号,因为默认情况下会在十进制数据前面加上正负号:
export to /home/staff.txt of del modified by decplusblank select * from users
DECPTx
对于小数,用什么分隔符来替代传统意义上的”.”,例如:逗号用作小数点export to test.del of del modified by decpt, select * from users
DATESISO
使用 ISO 日期格式
1
2
3
4
CODEPAGE=x
指定x这个ASCII字符串为输出数据的字符编码,在导出操作期间,将字符数据从应用程序字符编码转换成特定的字符编码。
STRIPLZEROS
去掉前补的0,例如:00023.40导出后变成:+23.40
NOCHARDEL
导出的列的值,其前后没有分隔符
TIMESTAMPFORMAT=”x”
x是源表中时间戳记的格式。(YYYY/MM/DD HH:MM:SS.UUUUUU、YYYY/MM/DD HH、YYYY-MM-DD HH:MM:SS TT、MMM DD YYYY HH:MM:SS:UUUTT、MMM DD YYYY HH:MM:SSTT
[method n(column-name[{,column-name}...])]
可选项,给导出数据列重命名,例如:
export to /home/users.ixf of ixf method n(a1,a2,a3,a4) select * from user
在默认情况下,导出的每一列数据以表中对应的字段名自动命名,我们可以通过method n子句给每一列重新命名,需要注意的是,这个子句只在ixf和wsf格式文件中有效,在文本文件中不能使用。
[messages message-file]
可选项,把导出信息保存在消息文件中,无论是成功、警告还是失败信息,都可以通过观察信息文件找到问题所在:
export to /home/users.ixf of ixf messages /home/info.txt select * from user
这个例子把user表数据导出到users.ixf文件中,所有的导出信息都保存在/home/info.txt文件中
{select-statement|hierarchy{starting sub-table-name|sub-table-name[{,sub-table-name}...]}}
[where ...]
查找数据,经典的就是select xxx from xxx where xxx查询语句。