oracle数据库sqlldr命令的使用

 将数据导入 oracle 的方法应该不少 , 对于不一样需求有不一样的导入方式 , 最近使用oracle的sqlldr命令 导入数据库数据感受是个挺不错的技术点 。  使用sqlldr命令 将文本文件导入 oracle中大体须要两步 :sql

第一步:编写ctl控制文件数据库

Load data --装载数据(第二步中会具体讲一下数据文件的来源位置)oracle

CHARACTERSET 'UFT8' --导入字符集格式
Append --这个属性意思是在数据库中原来数据基础上追加本身的数据,不改变原来的数据,有兴趣的还能够了解其余属性replace等
into table int_demo_student_b --插入数据库所对应得表
fields terminated by X'1B' --分隔符,用于分割数据文件中对应属性数据的分割符号 我用的是ESC键分割 ,还有 X'09' 等于逗号分割
TRAILING NULLCOLS --空列赋值,若是不加这个属性,当数据文件中有空值时,就会跳过空值,这样导入的数据就出现错位了,因此加了这个属性就能够避免空值错位
(
stu_id, --字段,字段的顺序和数据库的顺序一致
stu_name,
stu_class,
stu_age,
stu_sex,
stu_subject,
comment char(260), --截位操做,在作导入的时候,ctl导入属于文件流导入,当字段字符长度超过255位就会导入失败,若是这样就须要加这个属性来约束就不会导入失败了
import_flag constant "0", --默认赋值,若是原来数据文件中没有的字段,而本身须要在本身数据库表中增长某个字段,就须要添加默认值constant
err_msg constant " "
)日志

第二步:使用cmd命令窗口中输入命令sqlldr命令运行 最后按下回车键blog

   ->  sqlldr  userid = 用户名 / 密码 @ 数据库名  data=数据文件地址   control = ctl控制文件地址     bad = D:/ bad.bad 错误日志   log =D:/log.log 日志记录cmd

还能够在命令中输入rows deirect silent errors等属性来限制导入的行数等其余条件,有兴趣的能够本身了解下table

  

目前地址数据都是固定的,在实际应用通常都会经过定义变量来使用,这样能够重复使用。class

相关文章
相关标签/搜索