X'09' 表示 tab
2、data.test 数据文件数据:
12,xvbg
13,mggjf
14,oijjg
35,zxcs
34,svvv
table 表结构:
create table test( id number(10),name char(20))
data.ctl 内容:
load data
infile data.test
truncate into table test
fields terminated by ','
(id,name)
3、
所有字段使用空格分隔,其中有两个字段使用双引号包含(其中可能有空格),数据样本、域分隔如下:
60.23.202.124 26.120.3.61 - - 1 [09/Oct/2011:09:00:01 +0800] "POST /BocnetClient/PAYSNo&SignDynPayments.do HTTP/1.1" 200 23089 ""
------------- ----------- - - - ---------------------------- ------------------------------------------------------- --- ----- --------------------------------
看起来很复杂,其实通过使用OPTIONALLY ENCLOSED BY就可以轻松实现。
另外,由于该字段较长,需要在控制文件中说明字段长度(超过255),否则报错。
--1,创建临时表
drop table tmp_webaccess;
create table tmp_webaccess
(
col1 varchar2(20),
col2 varchar2(20),
col3 varchar2(20),
col4 varchar2(20),
col5 varchar2(20),
col6 date,
col8 varchar2(200),
col9 varchar2(100),
col10 varchar2(100),
col11 varchar2(200)
);
--2,创建控制文件
more webaccess.ctl
LOAD DATA
infile "webaccess.txt"
Append INTO TABLE tmp_webaccess
FIELDS TERMINATED BY ' '
OPTIONALLY ENCLOSED BY '"' TRAILING NULLCOLS
(
col1,
col2,
col3,
col4,
col5,
col6 "to_date(replace(:col6,'['),'dd/mm/yyyy:hh24:mi:ss')",
col7 filler,
col8 char(4000),
col9,
col10,
col11 char(4000)
)