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. java.lang.IllegalStateException

    java.lang.IllegalStateExceptionorg.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFac ...

  2. TensorFlow学习之运行label_image实例

    前段时间,搞了搞编译label_image中cc的实例,最后终于搞定...但想在IDE中编译还没成功,继续摸索中. 现分享一下,探究过程,欢迎叨扰,交流. 个人地址:http://home.cnblo ...

  3. Wing IDE编译TesorFlow中Mnist convolutional 实例

    # # http://www.cnblogs.com/mydebug/ # from __future__ import absolute_import from __future__ import ...

  4. poj 3278 Catch That Cow 优化深搜

    这题的思想很简单,就是每次找出队列里面花费时间最少的来走下一步,这样当我们找到k点后,所花费的时间一定是最少的. 但要用一个标记数组vis[200010],用来标记是否走过.否则会内存溢出. #inc ...

  5. Netbackup磁带过期处理

    bpexpdate -m <mediaid> -d 0 如果不通过,看是否被其他media server写入数据.使用 nbemmcmd -listhost 查看所有media serve ...

  6. Colossal Fibonacci Numbers(巨大的斐波那契数)UVA 11582

    评测地址:http://acm.hust.edu.cn/vjudge/problem/41990 The i'th Fibonacci number f (i) is recursively de n ...

  7. struts2 jsp表单提交后保留表单中输入框中的值 下拉框select与input

    原文地址:struts2 jsp表单提交后保留表单中输入框中的值 下拉框select与input jsp页面 1     function dosearch() {2         if ($(&q ...

  8. Linux 命令 - cd: 切换工作目录

    命令格式 cd [directory] 实例 a) 将工作目录切换成主目录. cd # 或 cd ~ b) 将工作目录切换成当前工作目录的父目录. cd .. c) 将工作目录切换成上一个的工作目录. ...

  9. CSS之perspective

    <!DOCTYPE html> <html> <head> <style> #div1 { position: relative; height: 15 ...

  10. SQL 行转列

    ---1.最简单的行转列/* 问题:假设有张学生成绩表(tb)如下:姓名 课程 分数张三 语文 74张三 数学 83张三 物理 93李四 语文 74李四 数学 84李四 物理 94 想变成(得到如下结 ...