利用sqlldr将数据文件导入到数据库

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

利⽤sqlldr将数据⽂件导⼊到数据库
前段时间了解到了sqlldr这个功能,感觉很不错就尝试着搞⼀下。

我也是通过查阅⽹上的资料了解并实验的,如果有什么说的不对或者有需要补充的希望⼤⽜们多多指点。

sqlldr的作⽤是将数据⽂件导⼊数据库的表,只⽀持单个⽂件的导⼊。

不过应该可以使⽤循环或者数据⽂件合并来实现多个⽂件的导⼊。

利⽤sqlldr进⾏数据⽂件的导⼊只要两步:
1.写⼀个ctl格式的⽂件(⽤于说明接收表的⼀些信息)
参数说明:
load data -- 1. 控制⽂件标识
参数说明:
load data -- 1. 控制⽂件标识
之后是对表的操作类型:
insert: 默认值,在空表中插⼊记录,如果表不为空则会报错。

append: 在表中追加新记录。

replace:替换,将旧的记录去掉(⽤delete语句),添加上新的信息。

truncate:替换,将旧的记录去掉(⽤truncate语句),添加新的信息。

FIELDS TERMINATED BY "":数据分隔符。

TRAILING NULLCOLS:当数据⽂件对应字段是空值时,表中对应字段就以null插⼊。

2.写⼊导⼊语句:
参数说明:
userid:数据库的账号密码⽤户串
control:控制⽂件,也就是第⼀步写的的⽂件
log:⽇志⽂件,记录执⾏信息。

bad:坏数据⽂件,出现错误的记录会出现在该⽂件中
data:数据⽂件名字
parallel:不会锁住加载表,可以同时让多个sqlldr语句操作⼀个表导⼊数据,这样不安全,⼀般⽤false。

direct:Direct导⼊可以跳过数据库的相关逻辑(DIRECT=TRUE),⽽直接将数据导⼊到数据⽂件中,但是这样可能会破快表的结构,⼀般⽤false。

另外还有⼀种情况就是导⼊部分列:假如数据⽂件有五列⽽表只需要⼀、三、四这三列的情况。

这种情况只需要对.ctl控制⽂件进⾏修改,我们可以把不需要的⼆、五两列在控制⽂件中的字段设置为其他值,先附图,取值说明随后说。

其中的TCOL FILLER与TCOLS FILLER放在不需要导⼊数据库表的列,我发现这个值不是随便写的,本⼈对取值也没有深究,只是随便试了试摸索了点规律。

这个值中的FILLER是固定的不可少的,不过前边的TCOL是可以变的,不过尽量⽤字母,数字能不能⽤我没有试。

相关文档
最新文档