SQL*Loader使用详解(一)
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使用详解(一)的更多相关文章
- Java程序员从笨鸟到菜鸟之(一百零二)sql注入攻击详解(三)sql注入解决办法
sql注入攻击详解(二)sql注入过程详解 sql注入攻击详解(一)sql注入原理详解 我们了解了sql注入原理和sql注入过程,今天我们就来了解一下sql注入的解决办法.怎么来解决和防范sql注入, ...
- Java程序员从笨鸟到菜鸟之(一百)sql注入攻击详解(一)sql注入原理详解
前段时间,在很多博客和微博中暴漏出了12306铁道部网站的一些漏洞,作为这么大的一个项目,要说有漏洞也不是没可能,但其漏洞确是一些菜鸟级程序员才会犯的错误.其实sql注入漏洞就是一个.作为一个菜鸟小程 ...
- mysql中SQL执行过程详解与用于预处理语句的SQL语法
mysql中SQL执行过程详解 客户端发送一条查询给服务器: 服务器先检查查询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果.否则进入下一阶段. 服务器段进行SQL解析.预处理,在优化器生成对应的 ...
- SQL DELETE 语句详解
SQL DELETE 语句详解 DELETE 语句 DELETE 语句用于删除表中的行. 语法 DELETE FROM 表名称 WHERE 列名称 = 值 Person: LastName Fir ...
- SQL Update 语句详解
SQL Update 语句详解 Update 语句 Update 语句用于修改表中的数据. 语法: UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值 Person: L ...
- SQL SERVER分区详解(1-5)
转自: (五)SQL Server分区自动化案例 (四)SQL Server分区管理 (三)索引分区知识详解 (二)SQL Server分区创建过程 (一)SQL Se ...
- sql各种连接详解
迁移时间:2017年6月1日16:33:58 CreateTime--2016年9月14日11:19:00Author:Marydon sql各种连接详解 参考链接: http://www.jb5 ...
- 为什么说JAVA中要慎重使用继承 C# 语言历史版本特性(C# 1.0到C# 8.0汇总) SQL Server事务 事务日志 SQL Server 锁详解 软件架构之 23种设计模式 Oracle与Sqlserver:Order by NULL值介绍 asp.net MVC漏油配置总结
为什么说JAVA中要慎重使用继承 这篇文章的主题并非鼓励不使用继承,而是仅从使用继承带来的问题出发,讨论继承机制不太好的地方,从而在使用时慎重选择,避开可能遇到的坑. JAVA中使用到继承就会有两 ...
- 【SQL Server】SQL触发器经验详解
[SQL Server]SQL触发器经验详解 | 浏览: 4314 | 更新: 2013-01-07 15:33 25 11 全文阅读分步阅读 加入杂志 步骤 1 2 3 4 5 6 7 8 ...
随机推荐
- android scrollview主要的问题
项目做多了之后,会发现其实 ScrollView嵌套ListVew或者GridView等很常用,但是你也会发现各种奇怪问题产生.根据个人经验现在列出常见问题以及代码最少最简单的解决方法. 问题一 : ...
- 实验教学管理系统 c语言程序代写源码下载
问题描述:实验室基本业务活动包括:实验室.班级信息录入.查询与删除:实验室预定等.试设计一个实验教学管理系统,将上述业务活动借助计算机系统完成. 基本要求: 1.必须存储的信息 (1)实验室信息:编号 ...
- Adobe Edge Animate –可重复使用的个性化按钮制作
Adobe Edge Animate –可重复使用的个性化按钮制作 版权声明: 本文版权属于 北京联友天下科技发展有限公司. 转载的时候请注明版权和原文地址. 效果图: 工程文件中:
- [改善Java代码]适时选择不同的线程池来实现
Java的线程池实现从最根本上来说只有两个:ThreadPoolExecutor类和ScheduledThreadPoolExecutor类,这两个类还是父子关系,但是Java为了简化并行计算,还提供 ...
- [改善Java代码]若有必要,使用变长数组
Java中的数组是定长的,一旦经过初始化声明就不可改变长度,这在实际使用的时候非常不方便.比如要对一个班级的学生信息进行统计,因为我们不知道班级会有多少个学生(随时可能有退学,入学,转学),所以需要一 ...
- 关于Java中的构造方法和set方法()给属性赋值
对于一个类中的成员变量(属性),属性如果都设置成了private类型,那么对外给属性设置了get和set方法 , 那么外部程序中给这些属性设置值,有两种方式. 第一种就是通过set()方法. 第二种就 ...
- Scala中的偏函数与部分应用函数
Scala中有PartialFunction的概念, 同时还要一个概念叫Partial Applied Function. 前者译作偏函数, 后者译作"偏应用函数"或"部 ...
- hostname
http://www.linuxidc.com/Linux/2014-11/109238.htm
- ps扩大、缩小选区
用"套索工具""魔棒工具"或者等工具将选区选出来,创建出一个需要处理的选区. 点击ps菜单栏中的"选择",在下拉菜单中选择"修 ...
- Quartz Scheduler(2.2.1) - Working with TriggerListeners and JobListeners
TriggerListeners and JobListeners Listeners are objects that you create to perform actions based on ...