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. iOS之原生地图与高德地图

    原生地图 1.什么是LBS LBS: 基于位置的服务 Location Based Service 实际应用:大众点评,陌陌,微信,美团等需要用到地图或定位的App 2.定位方式 1.GPS定位 2. ...

  2. eclipse中自动生成javadoc文档

    使用eclipse生成文档(javadoc)主要有三种方法:  1,在项目列表中按右键,选择Export(导出),然后在Export(导出)对话框中选择java下的javadoc,提交到下一步.  在 ...

  3. javaweb学习总结二十二(servlet开发中常见的问题汇总)

    一:web应用的映射问题 通常我们从别人那里拷贝来的代码,自己会修改应用的名称,但是web映射的访问路径并没有修改,还是原来的映射. 解决方法: 工程右键--properties--myeclipse ...

  4. 使用Hibernate框架技术时,对项目进行的配置

    1.在需要使用Hibernate框架技术的项目上单击鼠标右键,在弹出的菜单中选择MyEclipse-->Add Hibernate Capabilities,打开Add Hibernate Ca ...

  5. Ehcache(2.9.x) - API Developer Guide, Transaction Support

    About Transaction Support Transactions are supported in versions of Ehcache 2.0 and higher. The 2.3. ...

  6. Nginx - Additional Modules, About Your Visitors

    The following set of modules provides extra functionality that will help you find out more informati ...

  7. django 学习-7 模型数据操作

    1.首先还是创建办一个项目和一个应用 django.admin.py   startproject    ssj cd  ssj django.admin.py   startapp    sdj 那 ...

  8. 和阿文一起学H5-文字云制作

    ---恢复内容开始--- 实用工具!优秀的标签云免费生成工具 来源:http://www.uisdc.com/online-word-cloud-generators 标签云或文字云是关键词的视觉化描 ...

  9. CentOS 7 下Docker的安装

    笔者是刚入行1年的新鸟,近期公司开始推Docker技术.这个系列的文章都是基于CentOS7系统下进行讲解的. Docker简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及 ...

  10. 第一章、C#委托和事件(Delegate、Event、EventHandler、EventArgs)

    第一章.C#委托和事件(Delegate.Event.EventHandler.EventArgs) 分类: 学习笔记-C#网络编程2012-12-08 14:10 7417人阅读 评论(3) 收藏  ...