[Oracle] SQL*Loader 详细使用教程(1)- 总览
SQL*Loader原理
SQL*Loader是Oracle提供的用于数据加载的一种工具,它比较适合业务分析类型数据库(数据仓库),能处理多种格式的平面文件,批量数据装载比传统的数据插入效率更高。其示意图如下:
控制文件(Control File) (.ctl):用于控制数据导入的行为方式的文件(最重要的文件)
参数文件(可选)(Parameter File) (.par):可以把参数直接写在控制文件里,也可以单独写一个参数文件
数据文件(Data Files) :放置源数据的平面文件(可以一次性导入多个数据文件)
坏文件(Bad File) (.bad):在数据加载时,把无法正确加载的数据放入错误文件中(比如数据格式、数据类型问题等)
丢弃文件(可选)(Discard File) (.dsc):有些数据,虽然数据格式、数据类型没有问题,但它被逻辑条件过滤掉了(由控制文件WHEN设置),会被放入丢失文件
日志文件(Log File) (.log):记录SQL*Loader的数据加载过程
SQL*Loader的数据加载方式
- 传统路径加载(direct=false):等同于insert语句
- 直接路径加载(direct=true):绕过SGA,把数据直接导入高水位线(HWM)以上,可设置并行加载,性能比传统路径加载更高,但限制也更多
- 外部表加载(较少用):先为数据文件上创建一个外部表,然后再把数据从外部表insert到目标表中
数据文件的记录格式
INFILE datafile_name "fix n"
表示数据文件里的每个记录定长为n个字节。
INFILE "datafile_name" "var n"
变长记录分为两个部分:记录长度和记录本身,看下面这个例子:
load data
infile 'example.dat' "var 3"
into table example
fields terminated by ',' optionally enclosed by '"'
(col1 char(5),
col2 char(7)) example.dat:
009hello,cd,010world,im,
012my,name is,
var 3 表示记录长度为3个字节,紧跟其后的就是记录本身,上例中,第一个记录长度为9个字节(009),值为其后的9个字节(hello,cd,);第二个记录长度为10个字节(010),值为其后的10个字节(world,im,\n),\n表示第一行行尾的换行符;以此类推。
INFILE datafile_name ["str terminator_string"]
'char_string':用单引号或双引号扩起来的字符串2.X'hex_string':十六进制的字节字符串。默认的分隔符为换行符'\n',即每行为一个记录。
[Oracle] SQL*Loader 详细使用教程(1)- 总览的更多相关文章
- [Oracle] SQL*Loader 详细使用教程(2)- 命令行参数
sqlldr工具 SQL*Loader的客户端工具是sqlldr,在操作系统的命令行下输入sqlldr,后面不接任何参数,将显示帮助信息如下所示(所有命令行参数的简单描述及其默认值),所以你并不需 ...
- [Oracle] SQL*Loader 详细使用教程(3)- 控制文件
控制文件是SQL*Loader里最重要的文件,它是一个文本文件,用来定义数据文件的位置.数据的格式.以及配置数据加载过程的行为,在sqlldr中以control参数指定控制文件. 在控制文件里配置 ...
- [Oracle] SQL*Loader 详细使用教程(4)- 字段列表
在上一篇中我们介绍了SQL*Loader中最重要的文件——控制文件,而本篇要介绍控制文件中最重要的部分——字段列表,字段列表的作用是把数据文件中的记录和数据库中表的列对应起来,下面是字段列表的一个例子 ...
- [Oracle] SQL*Loader 详细使用教程(5)- 典型例子
本文介绍SQL*Loader在实际使用过程中经常用到的典型例子. 1. 表中的列比数据文件的列要少怎么办? 假设一个csv的文件如下: a1,a2,a3,a4 b1,b2,b3,b4 c1,c2,c3 ...
- [Oracle] Data Pump 详细使用教程(4)- network_link
[Oracle] Data Pump 详细使用教程(1)- 总览 [Oracle] Data Pump 详细使用教程(2)- 总览 [Oracle] Data Pump 详细使用教程(3)- 总览 [ ...
- [Oracle] Data Pump 详细使用教程(5)- 命令交互模式
[Oracle] Data Pump 详细使用教程(1)- 总览 [Oracle] Data Pump 详细使用教程(2)- 总览 [Oracle] Data Pump 详细使用教程(3)- 总览 [ ...
- Oracle Sql Loader的学习使用
最近由于遇到oracle控制文件的使用,虽然不是很复杂,但是从来没有用过,专门花点时间看看.点击 这里 查看详细 1,概述: Sql Loader: 一个批量工具,将文件数据导入到数据库.可以导入一个 ...
- Oracle SQL Loader
C:/Documents and Settings/WWJD>sqlldr SQL :: Copyright (c) , , Oracle. All rights reserved. 用法: S ...
- Oracle SQL*Loader commit point tips
http://www.dba-oracle.com/t_sql_loader_commit_frequency.htm - Question: Can I control the commit fr ...
随机推荐
- 3D Touch
一.认识3D Touch 1.硬件和操作系统要求 iPhone 6s或者iPhone 6s Plus 操作系统要求 ios9+ 2.3D Touch的交互效果 QuickAct ...
- 【java基础学习】泛型
泛型 1. 泛型类(声明的泛型类型静态方法不能使用) class Tools<T>{ private T t; public void set(T t){ this.t = t; } pu ...
- 解决Tomcat无法shutdown进程
转自:http://my.oschina.net/yongyi/blog/405198 问题分析 这个在windows下没有碰到过,因为此前跑Tomcat都是以服务而不是命令脚本的形式跑的,而且已经换 ...
- What’s the difference between data mining and data warehousing?
Data mining is the process of finding patterns in a given data set. These patterns can often provide ...
- vi全局替换
http://blog.csdn.net/vindak/article/details/7830547 vi全局替换命令
- PartialViewResult不鸟_ViewStart.cshtml
概述 在ASP.NET MVC中,对于Action中得到的ActionResult如果是一个ViewResult对象,那么在进行View呈现时,则会先执行_ViewStart.cshtml,然后再去执 ...
- cocos2dx 3.x(定时器或延时动作自动调用button的点击响应事件)实现自动内测
// // ATTGamePoker.hpp // MalaGame // // Created by work on 2016/11/09. // // #ifndef ATTGamePoker_h ...
- 换手率的公司使用MQTT的框架
向换手率公司学习.该公司貌似也使用 Golang
- java学习规划
今天在网上看到一位大学生的java学习线路规划,觉得蛮适合我,就详细阅读了一下,规划路线应该适用于大部分学习java语言的人,贴出来与大家共勉. 在学习的过程中,不能急于去学习更多的知识,因为知识是无 ...
- bootstrap入门-4.排版及其他固定样式
本篇包括以下内容:排版.代码.表格.表单. 总结:超无聊,弃更. · 排版样式 标题 h1-h6 取消加粗,字体大小也有一定变化 ...