FIX
"fix 30"
表示取30字符包括隐形换行符( /n两个字符)作为一行数据;连续向后取包括取一行结束后遇到换行符也算在另一行内
var
"var 2"
第一行以数据开头前两个字符做fix取值参数(取值从这两个数字向后开始,只取一行结束,取值方式和fix一样),
第一行结束后面两个字符作为下一行取值范围(换行符算在内)
控制文件
LOAD DATA
INFILE emp.txt "var 2"
DISCARDFILE EMP1.DSC
APPEND INTO TABLE emp
FIELDS TERMINATED BY ","
trailing nullcols
(NAME ,JOB ,SALARY ,COMPLANY )
数据文件
12aa ,bbcc,1206,14
11111B,DDDD,122222
STR
"STR'|\r\n'"
到|'前换行符也会导入oracle;'|'后面的换行符会作为正常的数据结束;
除第一个'|'直到
LOAD DATA
INFILE "emp.txt" "STR'|\r\n'"
truncate INTO TABLE emp
FIELDS TERMINATED BY ","
(NAME ,JOB ,SALARY ,COMPLANY )
select utl_raw.cast_to_raw('|'||chr(13)||chr(10)) from dual;
直接把字符串中每个字符的ASCII码存放到RAW类型的字段中。
以下效果同上X表示后面接raw类型
LOAD DATA
INFILE "emp.txt" "STR X'7C0D0A'"
truncate INTO TABLE emp
FIELDS TERMINATED BY ","
(NAME ,JOB ,SALARY ,COMPLANY )
sqlldr 范例可参考下面的网址
http://www.cnblogs.com/flish/archive/2010/09/19/1831121.html