文档章节

Oracle工具应用(一):数据文件导入SQL*Loader

Jacktanger
 Jacktanger
发布于 2016/12/23 22:46
字数 777
阅读 344
收藏 12

       Oracle提供的数据加载工具SQL*Loader可以将外部文件中的数据加载到Oracle数据库中,且支持多种数据类型(日期、字符、数据字符etc),可以将多种数据类型加载到数据库。导入数据准备:一个控制文件(.CTL) + 一个数据文件(.DAT)即可.

(1)控制文件:描述要加载的数据信息(数据文件名、数据存储格式、文件中数据对应的存储字段、数据加载方式、哪张表的哪列etc)

注:【根据数据存储格式分类】

      a.固定格式存储:数据按一定规律排序,扩展文件通过固定长度将数据分割;

      b.自由格式存储:由规定的分隔符来区分不同字段的数据.

(2)数据文件:存放目标数据的文件

image

一.SQLLDR命令形式

>sqlldr

image

二.加载数据

关键在于:编写控制文件(决定要加载数据的格式)

1.固定格式加载

      数据按一定的规律排列,可使用固定格式加载,控制文件通过数据的固定长度将数据分割.

a.创建一张表free_table,保存要加载的数据

image

导入之前没有数据:

image

b.准备测试数据文件:free_data.dat

image

c.编写控制文件:free_data.ctl,使用默认数据加载方式(适用于表数据为空的情况下,否则需要指定append或replace方式)

image

注:【固定格式控制文件】

infile:指定源数据文件

into 表名:数据将被添加到的表(可使用append向表中追加数据,或replace覆盖表中已有的数据)

position:指定表中字段对应数据的具体位置(一个英文符算1 一个中文符算2)

d.使用sqlldr命令加载数据,设置控制文件名和导入产生的日志信息文件

image

sqlldr 用户名/密码 control=控制文件位置 log=导入数据日志文件位置

导入结果:

image

生成的导入日志文件:

image

日志内容:

image

2.自由格式加载数据

       数据没有一定的格式,可使用自由格式加载,控制文件通过指定的分隔符将数据分割.

a.使用之前的表free_table,数据之间使用美元符号($)分割数据,可以看到字段的长度不固定

image

b.编写控制文件:free_date2.ctl

    b1.表不为空,且不指定加载方式(默认方式),

image

会报如下错误:

SQL*Loader-601:  对于 INSERT 选项, 表必须为空。表 FREE_TABLE 上出错

    b2.这时需要,更改为追加(append)方式加载数据:

image

注:【自由格式控制文件】

fields terminated by 指定分隔符 (表的字段列表)

c.使用sqlldr命令加载数据,设置控制文件名和导入产生的日志信息文件

image

sqlldr 用户名/密码 control=控制文件位置 log=导入数据日志文件位置

导入结果:

image

生成的导入日志文件:

image

 

嗯~ 就是这么简单!感谢chen工。

 

 

© 著作权归作者所有

Jacktanger
粉丝 35
博文 136
码字总数 89740
作品 0
浦东
程序员
私信 提问
数据库使用SQL*Loader导入的并行误区,如何巧妙规避?

作者介绍 本文中的SQLLoader案例源于几年前数据库一体机PK测试的场景,场景比较特殊,在疯狂的PK中,方案不断迭代升级,使得案例有一定的趣味性。近期又碰到客户在弄SQLLoader的导入,老案例...

蒋健
07/30
0
0
Sql Loader的简单使用

之前总结的关于SQL*Loader的用法,今天又用到,又翻出来看看 SQL*Loader 可将外部文件中的数据加载到Oracle DB 的表中。它具有一个功能强大的数据分析引擎,因此对数据文件中数据的格式没有什...

青苗飞扬
2017/12/05
0
0
21、移植数据(数据仓库)

21、移植数据(数据仓库) (1)数据泵 expdp impdp 数据泵导出和导入情景: 全库、用户、表、表空间、可移动表空间。 案例模板: mkdir -p /u02/dumpdir chown -R oracle.dba /u02/dumpdir des...

lxm111111
2017/10/18
0
0
sqlldr 导入乱码,Oracle客户端字符集问题

1,查Oracle数据库创建时候的字符集: Oracle服务器端执行 SQL> select name, value$ from sys.props$ where name like 'NLS%'; NAME VALUE$ ------------------------------ --------------......

Primaries
2013/03/01
416
0
sql loader 导入数据时的问题

在使用oracle sql loader 工具导入数据时遇到的问题,具体的shell脚本如下: !/bin/bash export LANG=zh_CN.GBKexport NLSLANG=AMERICANAMERICA.ZHS16GBKexport ORACLE_BASE=/u01/oracleexp......

湁忆
2013/07/06
975
0

没有更多内容

加载失败,请刷新页面

加载更多

centos7上部署dubbo管理控制台dubbo-admin

centos7上部署dubbo管理控制台dubbo-admin 1 准备工作 服务器:系统centos7, 内存4G, 存储60G, ip 192.168.159.128 软件环境: 安装有jdk1.8, 具体安装方式参见《centos7上安装jdk1.8》博...

flygrk
16分钟前
3
0
工作中一些原则体会

尽可能让一切变得简单,用最简单的方式完成工作 能用最少的概念,最精简易懂的概念模型来抽象系统,多一个概念就多一份别人了解系统以及维护系统的复杂度,别人也会质疑多一个概念的意义所在...

小强的进阶之路
19分钟前
4
0
Android -------- kotlin插件神器Json直接生成javaBean

这是一个data class从JSON字符串生成Kotlin 的插件,换句话说,是一个将JSON字符串转换为Kotlin data class(Json到Kotlin)的插件 在使用Kotlin进行开发的时候,我们需要经常对Json数据做解析...

切切歆语
44分钟前
31
0
1、Spring注解开发,第一天

第一天:Spring annotation开发 目录:1、@Configuration与@Bean给容器注册组件 2、@ConponentScan自动扫描注解 一、@Configuration与@Bean给容器注册组件 1、旧版本中创建配置文件和Bean //...

有一个小阿飞
52分钟前
24
0
斯坦福博弈论笔记整理活动的任务已重新划分,望周知

参与方式:https://github.com/apachecn/stanford-game-theory-notes-zh/blob/master/CONTRIBUTING.md 整体进度:https://github.com/apachecn/stanford-game-theory-notes-zh/issues/1 项目......

ApacheCN_飞龙
53分钟前
23
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部