暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

sqlloader实验

原创 fxjian0829 2022-09-01
266

SQLLOADER实验:

建立一个实验用目录:

mkdir -p /home/oracle/sqlldr --在ORACLE用户下执行

在数据库HR用户下创建一个表:
create table dept(deptno number(5),dname varchar2(15),loc varchar2(15));

1)创建数据文件

vi test.dat

10,"A","CHINA"

11,"B","USA"

12,"C","RUSSIA"

13,"D","INDIA"

14,"E","KOREA"

15,"F","JAPAN"

16,"G","FRANCE"

17,"H","ENGLISH"

2)创建控制文件

vi test.ctl

load data

infile 'test.dat' --指定加载的数据文件,可以是单独的文件名-相对路径(控制文件和加载文件在一起时),也可以带有目录的文件名-绝对路径 控制文件和加载的数据文件不在一个目录下

into table dept

fields terminated by ',' optionally enclosed by '"'

(deptno,dname,loc)

3)加载数据

sqlldr hr/hr control=test.ctl log=test.log





如果数据文件中,有列头,那么进行数据加载时,可能会出错,生成一个bad文件。

1)创建数据文件

vi test01.dat

deptno,dname,loc
10,"A","CHINA"
11,"B","USA"
12,"C","RUSSIA"
13,"D","INDIA"
14,"E","KOREA"
15,"F","JAPAN"
16,"G","FRANCE"
17,"H","ENGLISH"

2)创建控制文件

vi test01.ctl

load data

infile 'test01.dat'

into table dept1

fields terminated by ',' optionally enclosed by '"'

(deptno,dname,loc)

3)数据加载

sqlldr hr/hr control=test01.ctl log=test01.log

相关参数补充:
1) insert --为缺省方式,在数据装载开始时要求表为空
2) append --在表中追加新记录
3) replace --删除旧记录(用 delete from table 语句),替换成新装载的记录
4) truncate --删除旧记录(用 truncate table 语句),替换成新装载的记录


when deptno <> 15 -- 当deptno不为15的时候 可以插入

例子
into table dept when deptno <> 10

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论