oracle数据库sqlldr命令的使用
Posted chch213
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle数据库sqlldr命令的使用相关的知识,希望对你有一定的参考价值。
将数据导入 oracle 的方法应该很多 , 对于不同需求有不同的导入方式 , 最近使用oracle的sqlldr命令 导入数据库数据感觉是个挺不错的技术点 。 使用sqlldr命令 将文本文件导入 oracle中大致需要两步 :
第一步:编写ctl控制文件
Load data --装载数据(第二步中会具体讲一下数据文件的来源位置)
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命令运行 最后按下回车键
-> sqlldr userid = 用户名 / 密码 @ 数据库名 data=数据文件地址 control = ctl控制文件地址 bad = D:/ bad.bad 错误日志 log =D:/log.log 日志记录
还可以在命令中输入rows deirect silent errors等属性来限制导入的行数等其他条件,有兴趣的可以自己了解下
目前地址数据都是固定的,在实际应用一般都会通过定义变量来使用,这样可以重复使用。
以上是关于oracle数据库sqlldr命令的使用的主要内容,如果未能解决你的问题,请参考以下文章