哈喽,大家好,今天分享一个如何把文本数据快速导入到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文件,保存的导入失败的数据。其他参数后续再继续研究学习。