sqlldr,将数据批量导入Oracle数据库

哈喽,大家好,今天分享一个如何把文本数据快速导入到Oracle数据库的一个方法。

首先介绍一下sqlldr工具,它是由Oracle提供,专本用于把文本数据导入到Oracle数据库。它需要两个文件,一个是文本数据文件,另外一个是ctl文件。ctl文件主要是配置一些参数,比如文本数据的分割符,首行或其他具体行需不需要跳过,导入到哪张表,字段都哪些,这些字段都是什么属性等等。

首先我设计的一个表——xs,只有两个字段,xuehao,xingming,都是char型。

现在我的文本数据命名为ctl_test.dat,里面只包含五条数据,每一个字段都写在双引号里面,字段与字段之间用逗号隔开。

"181022","jing"
"181023","heng"
"181024","yuan"
"181025","xin"
"181026","ting"

现在介绍一下CTL文件。

OPTIONS (skip=0) --设置跳过某行不进行读取。
LOAD DATA  
INFILE "/home/oracle/Desktop/ctl_test.dat" 
--truncate是将表数据清空。默认是insert,但需要truncate将表清空,否则会报错。append是在原表后面追加。replace是将表中数据进行覆盖。 
append
INTO TABLE xs -- 要插入记录的表  
Fields terminated by "," -- 数据中每行记录用 "," 分隔  
Optionally enclosed by '"'--文本数据中的字段在双引号里
trailing nullcols --这里主要配置表的字段
(  
  xuehao, --字段可以指定类型,默认CHARACTER类型
  xingming  
)  
​

首先看看表中的原数据。

sqlldr,将数据批量导入Oracle数据库

现在执行sqlldr命令。

sqlldr,将数据批量导入Oracle数据库

数据导入成功了,这个时候的心情可是无比的喜悦啊。

执行成功之后一般会生成另外两个文件,一个是日志文件.log,记录执行结果等。另外一个是.bad文件,保存的导入失败的数据。其他参数后续再继续研究学习。

 

转载请注明:

作者:王亨

公众号:跟着菜鸟一起学R语言

原文链接:http://blog.csdn.net/wzgl__wh