例1:
用包含数据的文本导入.
1)
现在有一个要导入数据库的数据的文本abc.txt,格式如下:
123,312u
124,dsfsd
5423,rtdf34
............
2)
在数据库中创建要导入的表test(数据库用户名/密码:test/test,默认在本机)
create table abc(a number(10),
b varchar2(20),c number(10)
)
3)
编写ctl控制文件 abc.ctl,文件存放路径:abc.ctl
load data
infile 'abc.txt'
append /truncate/insert/replace
into table abc
fields terminated by ','
trailing nullcols
(a,b,c constant 100)
4)
命令提示符下执行一下命令
sqlldr userid=test/test control=abc.ctl
注:
infile '1.txt' //需要装载的数据文件的路径,如果数据在本文件中,则用infile *
append into table test //数据载入的表:
(1)append 表示表中有数据,加在后面
(2)INSERT 表示装入空表,有数据则停止。默认值
(3)REPLACE 原先表中如果有数据,会被删除
(4)TRUNCATE 如果要载入的数据与现在的数据相同,载入的数据替换现存的数据。
fields terminated by ','
//数据用是','分隔,也可用其他字符,如'|'
trailing nullcols //表示如果有字段为空也要导入
c constant 100 // 如果表中字段比文本文件字段还多,则可在控制文件中加上constant关键字,并给出某个固定值
日期时间的处理: colname date "yyyy-mm-dd hh24:mi:ss"
字符串超长(超过255字符)的处理: colname char(1000) 其中1000可自行确定