SQL*Loader(SQLLDR)是Oracle的高速批量数据加载工具。这是一个非常有用的工具,可用于多种平面文件格式向Oralce数据库中加载数据。今天看了申请了*loader的使用,自己小试了下,记录在这
1、假设要插入数据的表ftest,字段是(id,username,password,sj)
2、导入表的数据 以txt格式存储,名为data.txt
1 f f 2010-8-19
2 f1 f1 2010-8-19
3 f2 f2 2010-8-19
4 f3 f3 2010-8-19
5 f4 f4 2010-8-193、写控制文件,格式为ctl,命名为cont.ctl 内容如下:
load data
infile 'c:data.txt'
insert into table ftest
fields terminated by " "
(id,username,password,sj)注:如果表中没有数据就用insert,有数据就用append,删除旧数据插入新的数据用replace或truncate
4 在cmd命令窗口中执行
sqlldr fyzh/fyzh control=c:cont.ctl data=c:data.txt5 在plsql中查看表ftest
查看已成功插入。
重新学习sqlldr
sqlldr导入数据的一个最简单例子:
load data
infile * --告诉sqlldr要加载的数据就包含在控制文件本身
into table dept --加载到哪个表
fields terminated by ',' --数据加载形式应该是逗号分隔的值
(deptno,dname,loc) --所要加载的列
begindata --告诉sqlldr后面的行市要加载到dept表的数据
10,Sales,Virginia
20,Accounting,Virginia
30,Consulting,Virginia
40,Finance,Virginia
create table dept
(deptno number(2) constraint dept_pk primary key,
dname varchar2(14),
loc varchar2(13)
)
sqlldr userid=gwm/gwm@fgisdb control=c:demol.ctl
select * from dept;
1 10 Sales Virginia
2 20 Accounting Virginia
3 30 Consulting Virginia
4 40 Finance Virginiasqlldr导入的四种加载方式:
APPEND :原先的表有数据 就加在后面
INSERT:装载空表 如果原先的表有数据 sqlloader会停止 默认值
REPLACE :原先的表有数据 原先的数据会全部删除
TRUNCATE :指定的内容和replace的相同 会用truncate语句删除现存数据
用SQLLDR加载数据的FAQ
1、如何加载定界数据
1)定界数据即用某个特殊字符分隔的数据,可能用引号括起,这是当前平面文件最常见的数据格式。
对于定界数据,最常用的格式是逗号分隔值格式。采用这种文件格式,数据中的每个字段与下一个字段用一个逗号分隔。文本串可以用引号括起,这样就串本身包含逗号。如果串还必须包含引号,一般约定是使用两个引号。加载定界数据,相应的典型控制文件与前面例子相似,但是fields terminated by子句通常如下指定:










