哈喽,大家好,今天分享一个如何把文本数据快速导入到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命令。

如上图左边所示,数据导入成功了,这个时候的心情可是无比的喜悦啊。右边第二个框里面是执行sqlldr的命令,其中c##test是Oracle数据库的一个用户名,12345是密码。

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