1、SQL*Loader介绍
1)SQL*Loader是一个从外部文件指加载数据到Oracle数据库的工具。语法类似于DB2的Load语法,但SQL*Loader支持各种load格式、选择性load和多表load。

2)SQL*Loader从文本文件导数据到数据库中。功能包括:
从定界文件装数据
从固定长度的文本文件装数据
从二进制文件装数据
在输入文件中过滤数据

2、如何使用SQL*Loader工具
1)sqlldr语法
sqlldr scott@ORCL/scott control=load_emp.ctl
sqlldr scott/scott@ORCL control=load_emp.ctl

scott:数据库用户名;ORCL:数据库SID;scott:数据库密码

2)控制文件load_emp.ctl格式(按照什么规则load数据,此处只是其中一种方式,后面还会讲到按位置load)
load data
   infile '/home/oracle/work/load_emp.dat'
   into table load_emp
   fields terminated by "," optionally enclosed by '"'
   (empno,ename,sal,deptno)

infile:指定数据文件的位置
into table:指定把数据load到哪个表中
fields terminated by:指定load数据时,按何种方式分隔字段,此处按","分隔。我们也可以按"\t"(制表符,即:tab)分隔,X'01'(16进制的字符)分隔。
optionally enclosed by '"':将数据文件中的数据字段含有的引号“ " ”去掉,如果没有这段话,将会把“ " ”和字符合在一起导入数据库表中。

3)数据文件load_emp.dat格式
20001,"Tough HOU",5000,20
20002,"Xiaolong HOU",9000,30

4)测试
a. 创建load_emp表
[oracle@toughhou ~]$ su oracle
[oracle@toughhou ~]$ sqlplus /nolog
SQL> conn / as sysdba
SQL> startup
SQL> conn scott/scott
SQL> set editfile /home/oracle/work/sqledit
SQL> ed
create table load_emp(
empno   number(5),
ename   varchar2(20),
sal     number(10),
deptno  number(2))
/
SQL> /

b. 创建load_emp.ctl
load data
   infile '/home/oracle/work/load_emp.dat'
   into table load_emp
   fields terminated by "," optionally enclosed by '"'
   (empno,ename,sal,deptno)

c. 创建load_emp.dat
20001,"Tough HOU",5000,20
20002,"Xiaolong HOU",9000,30

d. 执行sqlldr加载数据
[oracle@toughhou work]$ sqlldr scott/scott@ORCL control=load_emp.ctl
Commit point reached - logical record count 2

//去load_emp表中查看是否加载成功
SQL> select * from load_emp;
     EMPNO ENAME                    SAL         DEPTNO
---------- -------------------- ---------- ----------
     20001 Tough HOU                 5000          20
     20002 Xiaolong HOU           9000          30

测试成功完成。

3、控制文件——load行内定长数据
load data
   infile *
   replace
   into table load_dept
   (  deptno   position(1:5)     char(5),
      dname   position(6:15)    char(10)
   )
begindata
50   Tough3   
60   Tough4

行内数据装载,用*作为数据文件(也可像上面例子一样,从数据文件中读入数据),表示数据人begindata部分开始。raplace表示加载前,将删除表中的所有数据。

create table load_dept(
deptno  varchar2(5),
dname  varchar2(10))
/

4、sqlldr4种装入表的方式:
insert:指定要装载的是空表,否则失败
append:添加数据到表,即使表中有数据
replace:加载前,将删除表中的所有数据
truncate:指定的内容和replace的相同 会用truncate语句删除现存数据

5、SQL*Loader使用的数据类型:
char:该char和数据库中的char类型不同,它包括数据库中的char、varchar、CLOB等类型
date:时间类型
integer external:定义整数值
decimal external:定义包括小数点的数值

6、使用SQL*Loader命令和参数
命令语法为: sqlldr [param=value [,param= valus … ] ]
参数:
Userid 用户名和密码
Control 指定控制文件名,也就是存放前面的胶片中的代码的文件
Log 指定日志文件名
Bad 指定存放坏记录的文件名
Data 指定数据文件名
Skip 允许跳过的记录数量
Load 允许装入的记录数量
Errors 指定允许的错误数
Rows 指定装载多少条记录提交一次
Direct 可以指定为直接路径装载
Parfile 指定包含命令参数的文件名

SQL*Loader使用详解(一)的更多相关文章

  1. Java程序员从笨鸟到菜鸟之(一百零二)sql注入攻击详解(三)sql注入解决办法

    sql注入攻击详解(二)sql注入过程详解 sql注入攻击详解(一)sql注入原理详解 我们了解了sql注入原理和sql注入过程,今天我们就来了解一下sql注入的解决办法.怎么来解决和防范sql注入, ...

  2. Java程序员从笨鸟到菜鸟之(一百)sql注入攻击详解(一)sql注入原理详解

    前段时间,在很多博客和微博中暴漏出了12306铁道部网站的一些漏洞,作为这么大的一个项目,要说有漏洞也不是没可能,但其漏洞确是一些菜鸟级程序员才会犯的错误.其实sql注入漏洞就是一个.作为一个菜鸟小程 ...

  3. mysql中SQL执行过程详解与用于预处理语句的SQL语法

    mysql中SQL执行过程详解 客户端发送一条查询给服务器: 服务器先检查查询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果.否则进入下一阶段. 服务器段进行SQL解析.预处理,在优化器生成对应的 ...

  4. SQL DELETE 语句详解

    SQL DELETE 语句详解   DELETE 语句 DELETE 语句用于删除表中的行. 语法 DELETE FROM 表名称 WHERE 列名称 = 值 Person: LastName Fir ...

  5. SQL Update 语句详解

    SQL Update 语句详解   Update 语句 Update 语句用于修改表中的数据. 语法: UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值 Person: L ...

  6. SQL SERVER分区详解(1-5)

    转自: (五)SQL Server分区自动化案例     (四)SQL Server分区管理     (三)索引分区知识详解     (二)SQL Server分区创建过程     (一)SQL Se ...

  7. sql各种连接详解

      迁移时间:2017年6月1日16:33:58 CreateTime--2016年9月14日11:19:00Author:Marydon sql各种连接详解 参考链接: http://www.jb5 ...

  8. 为什么说JAVA中要慎重使用继承 C# 语言历史版本特性(C# 1.0到C# 8.0汇总) SQL Server事务 事务日志 SQL Server 锁详解 软件架构之 23种设计模式 Oracle与Sqlserver:Order by NULL值介绍 asp.net MVC漏油配置总结

    为什么说JAVA中要慎重使用继承   这篇文章的主题并非鼓励不使用继承,而是仅从使用继承带来的问题出发,讨论继承机制不太好的地方,从而在使用时慎重选择,避开可能遇到的坑. JAVA中使用到继承就会有两 ...

  9. 【SQL Server】SQL触发器经验详解

    [SQL Server]SQL触发器经验详解 | 浏览: 4314 | 更新: 2013-01-07 15:33 25 11 全文阅读分步阅读   加入杂志 步骤 1 2 3 4 5 6 7 8   ...

随机推荐

  1. Objective-C ,ios,iphone开发基础:快速实现一个简单的图片查看器

    新建一个single view 工程: 关闭ARC , 在.xib视图文件上拖放一个UIImageView  两个UIButton ,一个UISlider ,布局如图. 并为他们连线, UIImage ...

  2. 给jdk写注释系列之jdk1.6容器(4)-HashMap源码解析

    前面了解了jdk容器中的两种List,回忆一下怎么从list中取值(也就是做查询),是通过index索引位置对不对,由于存入list的元素时安装插入顺序存储的,所以index索引也就是插入的次序. M ...

  3. LeetCode 319

    Bulb Switcher There are n bulbs that are initially off. You first turn on all the bulbs. Then, you t ...

  4. hdu 3333 树状数组

    思路:定义一个map容器用来记录数ai上次出现的位置.将查询区间按右边界升序进行排序,当插入第i个数ai时,pre[ai]+1---->i的区间就会多一个不同的数,其值就是ai,那么可以用upd ...

  5. Angular2 从0到1 (二)

    第一节:Angular2 从0到1 (一)第三节:Angular2 从0到1 (三)第四节:Angular2 从0到1 (四) 作者:王芃 wpcfan@gmail.com 第二节:用Form表单做一 ...

  6. COGS 265 线段覆盖

    265. 线段覆盖 ★★☆   输入文件:xdfg.in   输出文件:xdfg.out   简单对比时间限制:2 s   内存限制:20 MB [问题描述] 有一根长度为 L 的白色条状物.有两种操 ...

  7. MongoDB - Introduction to MongoDB

    MongoDB is an open-source document database that provides high performance, high availability, and a ...

  8. 【AngularJs】---$sce 输出Html

    [问题描述] angular js的强大之处之一就是他的数据双向绑定功能----->ng-bind和针对form的ng-model 但在我们的项目当中会遇到这样的情况,后台返回的数据中带有各种各 ...

  9. 升级NppAstyle中的AstyleLib为最高版本

    注:本文撰写时,NppAstyle的最高版本为0.10.02.14(更新于2013-04-08),Astyle的最高版本为2.05.1(更新于2014-12-11). Astyle是一个很好的代码格式 ...

  10. [easyui] datebox源码阅读. 批注

    jquery.datebox.js 文件. (function($){ /** * create date box */ function createBox(target){ var state = ...