这里用 excel 数据做个最简单的测试。
1)把 excel 数据存为 t.txt 文件,注意文件后缀名为 .txt
1 jhchen 11/07/2005 20:04:00 2005-11-7 20:04
2 jhchen 11/07/2005 20:04:00 2005-11-7 20:04
3 jhchen 11/07/2005 20:04:00 2005-11-7 20:04
2)SQL> create table t_load(
id number,
name varchar2(10),
dat1 date,
dat2 date,
dat3 date
);
Table created.
3)控制文件 t.ctl 如下
load data
infile ‘t.txt’
badfile ‘t.bad’
append into table t_load
fields terminated by X’09’
trailing nullcols
(
id ,
name ,
dat1 date “mm/dd/yyyy hh24:mi:ss”,
dat2 date “yyyy-mm-dd hh24:mi:ss”
)
其中,X’09’ 是制表符,TAB键,trailing nullcols 表示如表的字段没有对应的值时允许为空。
4)C:Documents and Settingscjh>sqlldr userid=jhchen/oracle control=t.ctl
SQL*Loader: Release 9.2.0.6.0 – Production on 星期一 11月 7 20:20:00 2005
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
达到提交点,逻辑记录计数3
5)SQL> select * from t_load;
ID NAME DAT1 DAT2 DAT3
———- ———- ——— ——— ———
1 jhchen 07-NOV-05 07-NOV-05
2 jhchen 07-NOV-05 07-NOV-05
3 jhchen 07-NOV-05 07-NOV-05
sqlldr userid=lgone/tiger control=a.ctl
LOAD DATA
INFILE ‘t.dat’ // 要导入的文件
// INFILE ‘tt.date’ // 导入多个文件
// INFILE * // 要导入的内容就在control文件里 下面的BEGINDATA后面就是导入的内容
INTO TABLE table_name // 指定装入的表
BADFILE ‘c:bad.txt’ // 指定坏文件地址
************* 以下是4种装入表的方式
APPEND // 原先的表有数据 就加在后面
// INSERT // 装载空表 如果原先的表有数据 sqlloader会停止 默认值
// REPLACE // 原先的表有数据 原先的数据会全部删除
// TRUNCATE // 指定的内容和replace的相同 会用truncate语句删除现存数据
************* 指定的TERMINATED可以在表的开头 也可在表的内部字段部分
FIELDS TERMINATED BY ‘,’ OPTIONALLY ENCLOSED BY ‘”‘
// 装载这种数据: 10,lg,”””lg”””,”lg,lg”
// 在表中结果: 10 lg “lg” lg,lg
// TERMINATED BY X ’09’ // 以十六进制格式 ’09’ 表示的
// TERMINATED BY WRITESPACE // 装载这种数据: 10 lg lg
TRAILING NULLCOLS ************* 表的字段没有对应的值时允许为空
************* 下面是表的字段
(
col_1 , col_2 ,col_filler FILLER // FILLER 关键字 此列的数值不会被装载
// 如: lg,lg,not 结果 lg lg
)
// 当没声明FIELDS TERMINATED BY ‘,’ 时










