首页 > 数据库 > Oracle > 文本文件的数据装载工具sqlldr
--sqlldr使用简单说明 oracle中要把txt文件或者csv文件的数据导入到数据库表中,此时需要使用oracle一个自带的sqlldr工具。
此时有test.txt文件
1,2,3
2,3,5
3,5,6
需要把txt的文件装载到oracle中的test_sqlldr表中
此时我们优先创建一个测试用表test_sqlldr
create table test_sqlldr(
id_1 number,
id_2 number,
id_3 number);
然后需要填写控制文件test.ctl,这个也是sqlldr工具使用最重要的部门
load data
infile "d:test.txt"
append into table test_sqlldr
fields terminated by ','
trailing nullcols --txt
(id_1,id_2 ,id_3)
ctl文件填写完成
load data --装载数据
infile --目标文本txt文件或者csv文件的物理位置
append into table --追加的方式append为在原来的表中继续添加数据,insert为默认选项装载空表,如果原来有数据则操作会暂停,replace和truncate都是删除原来数据然后插入,但是其中的replace是利用oracle的delete来删除数据,需要写入undo log信息,truncate则是直接截断table,不会写入关于此数据的undo log,但是因为会产生重做日志,oracle还是会产生维护重做日志的undo log。*/
fields terminated by ','--txt或者csv文件数据中的分隔符, fields terminated by whitespace则是指定空格为分隔符等
或者csv文件中缺少数据则默认为null
(id_1,id_2 ,id_3) --test_sqlldr的每个column_name
控制文件填写完毕后则在os命令模式下
sqlldr userid=ashuang/ashuang@test control=d:test.ctl log=d:test.log
其中的control是控制文件的物理位置,log则是记录的sqlldr装载数据的日志。
可能有时候我们只需要装载表中的部分column信息,比如此时我们只需要状态id_1和id_3的信息,id_2的信息不予以装载,可以把ctl文件中的最后的(id_1,id_2,id_3)中加载一个参数filler改成(id_1,id_2 filler,id_3)即可,这里用到了filler参数掠去了不需要装载的column_name。
当然sqlldr还有很多参数可以灵活运用,可以在os下直接sqlldr查看具体的参数的信息,当然有些参数还是需要自己使用来总结。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25362835/viewspace-1053003/ ,如需转载,请注明出处,否则将追究法律责任。