sqlldr使用详解

由于最近做一个项目 考虑到插入数据库效率的问题, 需要将 .csv格式的文本文件导入到 oracle数据库当中 。

 1 首先导入 oracle 的方法有很多 , 对于不同需求有不同的导入方式 , 我在这里就说一下  sqlldr 的方法 。  使用sqlldr 将文本文件导入 oracle中确切说只需要两步 。

 第一步:  写一个 ctl  格式的控制文件

      CTL 控制文件的内容 :  (我会写一个模板和一个样例)

  1) insert     --为缺省方式,在数据装载开始时要求表为空
  2) append  --在表中追加新记录
  3) replace  --删除旧记录(用 delete from table 语句),替换成新装载的记录
  4) truncate --删除旧记录(用 truncate table 语句),替换成新装载的记录

          模板 :

                 load data   --    1. 控制文件标识

                 infile 'xxx.csv'      --  2. 要导入的数据文件名  linuk系统路径:/.../...     windows系统路径:D:/....

                 insert  into  table   test   --  3.  将文件插入到数据库的 test 表中

                 fields terminated by ',' --  4.  用于分割一行中各个属性值的符号(例如每个属性值用逗号 分割 ,  ‘ ,’)

扫描二维码关注公众号,回复: 6308693 查看本文章

                 optionally enclosed by '"' --5 很多数据源的字段开始和结束都是带双引号的,这里是无视这些双引号,如果不写 optionally enclosed by '"'那么带有双引号的数据会插入到数据库表中

                 (id  , username ,passwprd ,......)    -- 6.  test表中对应的属性名

2,在 cmd 命令窗口中写入导入语句     

   ->  sqlldr  userid = 用户名 / 密码 @ 数据库名    control = 之前写的ctl控制文件的地址     bad = E:/ bad.bad    log = E:/log.log

猜你喜欢

转载自www.cnblogs.com/zhengjinsheng/p/10949258.html