您的位置:首页 > 数据库

SQL*loader实验

2015-07-23 21:10 344 查看
SQL*Loader 用法:

sqlldr keyword=value [,keyword=value,... ]

SQL*Loader通过控制文件实现对记录的处理,例子命令行下sqlldr scott/tiger control=case.ctl(并非数据库sql>下)
case.ctl内容如下:

load data

infile * ##使用*表示加载的数据在控制文件中,如果是独立文件要使用‘绝对路径名’

into table bonus ##指定要将数据加载到哪个表中,该表必须已经存在。into前还有参
##数使用说明如下:
##insert:向表中插入数据,表必须为空表否则执行失败。into默认
##为insert
##append:无论表中是否有数据都向表中追加数据 ##replace:将原来的表中数据delete干净,然后添加新数据

##truncate:truncate表中的数据,然后添加新数据

fields terminated by “,”##设置数据部分的字符串分割标志为

(ename,job,sal)##设置表的列名,列名必须与表中的列名相同。

begindata ##表示以下为待加载数据

smith,clerk,1900 ##格式要对应表列名

allen,salesman,2900

实验1:以独立文件向表中追加数据

vim case.ctl内容如下

load data
infile '/home/oracle/pks1.txt'
append into table bonus
fields terminated by ","
(ename,job,sal)

vim /home/oracle/psk1.txt内容如下:

ward,salsman,3123

king,president,5000

实验2:数据文件不符合规范,观察日志(与控制文件同名.log)以及错误文件(与日志文件同名.bad)

vim case1.ctl内容如下 load data infile '/home/oracle/pks2.txt' append into table bonus fields terminated by "," (ename,job,sal)
vim /home/oracle/psk2.txt内容如下:
kkksss123 wwwqqq321

[oracle@pks09 ~]$ cat case1.log

SQL*Loader: Release 10.2.0.1.0 - Production on Thu Jul 23 20:53:21 2015

Copyright (c) 1982, 2005, Oracle. All rights reserved.

Control File: case1.ctl
Data File: /home/oracle/pks2.txt
Bad File: pks2.bad
Discard File: none specified

(Allow all discards)

Number to load: ALL
Number to skip: 0
Errors allowed: 50
Bind array: 64 rows, maximum of 256000 bytes
Continuation: none specified
Path used: Conventional

Table BONUS, loaded from every logical record.
Insert option in effect for this table: APPEND

Column Name Position Len Term Encl Datatype
------------------------------ ---------- ----- ---- ---- ---------------------
ENAME FIRST * , CHARACTER
JOB NEXT * , CHARACTER
SAL NEXT * , CHARACTER

Record 1: Rejected - Error on table BONUS, column JOB.
Column not found before end of logical record (use TRAILING NULLCOLS)
Record 2: Rejected - Error on table BONUS, column JOB.
Column not found before end of logical record (use TRAILING NULLCOLS)

Table BONUS:
0 Rows successfully loaded.
2 Rows not loaded due to data errors.
0 Rows not loaded because all WHEN clauses were failed.
0 Rows not loaded because all fields were null.

Space allocated for bind array: 49536 bytes(64 rows)
Read buffer bytes: 1048576

Total logical records skipped: 0
Total logical records read: 2
Total logical records rejected: 2
Total logical records discarded: 0

Run began on Thu Jul 23 20:53:21 2015
Run ended on Thu Jul 23 20:53:21 2015

Elapsed time was: 00:00:00.06
CPU time was: 00:00:00.02

观看日志文件可知pks2.txt数据文件的两行数据加载失败,错误文件为pks2.bad。
查看pks2.bad分析错误原因
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息