SQL*loader实验

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

[[email protected] ~]$ 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分析错误原因

时间: 2024-10-10 13:41:40

SQL*loader实验的相关文章

SQL*Loader实验笔记【二】

所有SQL*Loader实验笔记 实验案例总结(1-7):     SQL*Loader实验笔记[一] 实验案例总结(8-13):   SQL*Loader实验笔记[二] 实验案例总结(14-19): SQL*Loader实验笔记[三]   8)加载序列 初始化 [email protected]>create table t2 (seqno int,name varchar2(20)); Table created. 控制文件 load data infile * into table t2

sql*loader的实验一

目的:将txt中的数据导入到数据库的一个表中 第一步:scott创建一个空表 create table family(id number(10),name varchar(20),sal number(20),total number(30)); 第二步:创建txt数据文件: vi /oracle/input.txt 1,clark,4000,50000 2,saber,4100,40000 第三步:创建sql*loader的输入控制文件: vi /oracle/input.ctl load d

SQL 专题实验

mergemerge into copy_emp ce using emp e on (ce.empno = e.empno) when matched then update set ename = e.ename when not matched then insert (empno, ename) values(e.empno, e.ename) 注: merge 也属于 dml 操作, 所以操作之后需要进行 commit; escape 转义字符SELECT * FROM copy_em

SQL*Loader FAQ

SQL*Loader FAQ: Contents [hide] 1 What is SQL*Loader and what is it used for? 2 How does one use the SQL*Loader utility? 3 How does one load MS-Excel data into Oracle? 4 Is there a SQL*Unloader to download data to a flat file? 5 Can one load variable

Oracle中的sql loader

oracle 的sql loader用来将操作系统上的数据文件中的内容加载到oracle数据库中. 要使用sql loader,需要先创建一个控制文件,里面告诉sql loader在启动了sql loader之后的加载数据的策略. 新建一个studentdataload.ctl文件,写入   load data      infile 'studentdata.txt'      into table studentinfo      fields terminated by '|'      

SQL群集实验(二)

6)MCCS群集安装 先关闭节点2,启动节点2.然后在节点1上打开服务器管理器添加故障转移群集功能. 然后在节点2上执行同样的操作.两个节点都安装故障转移群集功能以后,在节点1打开故障转移群集管理器,创建一个新的群集 完成后,创建MSDTC服务,同样在故障转移群集控制台,右键"服务和应用程序",打开"配置服务或应用程序"进行配置 配置完成后手工切换MSDTC资源组从一个节点到另外一个节点的移动.移动操作可以反复做几次.最后可以MSDTC活动节点关机,再在另一台节点上

SQL LOADER 的用法 TXT文件导入非常之快

前提,需要本地安装ORACLE 客户端 控制文件 cms.ctl load dataCHARACTERSET UTF8infile 'oracle.txt'APPEND INTO TABLE JR fields terminated by '|'(BUKRS,LONNO,WAERS,BLDAT,BUDAT,SHKZG,DLCOD,HKONT,FPGRP,FPNAM,LONPR,WRBTR,ECNMA,DLNAM,EVTCD,SEVTC,SEVTD,CITYC,CITY,LONTP,PAYER,R

Oracle Sql Loader的学习使用

最近由于遇到oracle控制文件的使用,虽然不是很复杂,但是从来没有用过,专门花点时间看看.点击 这里 查看详细 1,概述: Sql Loader: 一个批量工具,将文件数据导入到数据库.可以导入一个表或者多个表,甚至可以在导入时修改数据. 2,使用 a,你电脑需要装Oracle,不然你是找不到Sqlldr 这个命令的. 在控制输入台输入 sqlldr: 会列出相关的参数介绍. > sqlldr . . . Usage: SQLLDR keyword=value [,keyword=value,

SQL*Loader数据装载工具入门_超越OCP精通Oracle视频课程培训24

oracle视频教程目标     Oracle视频教程,风哥本套oracle教程培训学习Oracle SQL*Loader概念及用法及SQL*Loader两个案例,同时课件带有近20个案例用于大家自行练习.适用人群IT相关从业人员.Oracle数据库技术人员.想加工资的.想升职的都可以. 视频在线学习地址:http://edu.51cto.com/course/course_id-6987.html Oracle视频教程简介本课程介绍:Oracle视频教程,风哥本套oracle教程培训学习Ora