Oracle SQL *加载程序使用案例(二)

  文件最大行数不超过行,说明数据处理量并不大,处理的方式是将其另存为格式文件然后即可按照正常方式导入即可。   

  

  
  

  

  2.2要加载的文件不是以逗号分隔   

  

  有两种方式可以参考:修改数据文件,将分隔符替换为逗号。修改控制文件,将的值修改为实际的分隔符。   

  

  
  

  

  2.3要加载的数据中包含分隔符   

  

  例如要向表插入数据提供的数据格式如下:修改控制文件注意下列示例代码中的粗体字符参数指明定界符为双引号格式文件默认定界符就是双引号你可以根据实际情况修改的参数值如下所示:   

  

  ,   

  

  ——控制文件   

  

  (oracle@wjq SQL *装载机) vim wjq_test2美元。ctl
  加载数据
  INFILE '/u01/app/oracle/SQL *装载机/wjq_test2。dat的
  截断成表tb_loader
  由”、“可选字段终止包围”的,
  (SAL ENAME、工作)   

  

  ,,   

  

  ——数据文件   

  

  (oracle@wjq SQL *装载机) vim wjq_test2美元。dat
  史密斯,3904年CLEAK
  艾伦,”售货员,M”, 2891年
  病房里,“卖点”,“S”“”, 3128年
  国王,总统,2523年sqlldr   

  

  ,   

  

  运行如上代码,并查询结果如下:   

  

  (oracle@wjq SQL *装载机)$ sqlldr斯科特/老虎控制=/u01/app/oracle/SQL *装载机/wjq_test2。ctl
  

  SQL *装载机:释放11.2.0.4.0 -生产星期二2017年10月31日14:56:40
  
  版权(c) 1982、2011、甲骨文和/或其附属公司只保留所有权利。
  
  提交点达到4 -逻辑记录计数   

  

  ,,   

  

  ——查询结果   

  

  SCOTT@seiang11g> select * from tb_loader;
  

  ENAME ,,,,JOB ,,,,,,,,,,,,SAL ,,,,,通讯
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  SMITH ,,,,CLEAK ,,,,,,,,,3904年
  ALLEN ,,,,售货员,M ,,,,,,,2891年
  WARD ,,,,,售货员,“S”,,,,,,3128年
  KING ,,,,,PRESIDENT ,,,,,2523   

  

  ,   

  

  2.4数据文件没有分隔符   

  

  如下的数据文件专业叫做定长字符串,中处理定长字符串也轻而易举。针对此例,我们将控制文件修改如下:   

  

  ,   

  

  ——控制文件   

  

  (oracle@wjq SQL *装载机) vim wjq_test3美元。ctl
  

加载数据   INFILE '/u01/app/oracle/SQL *装载机/wjq_test3。dat的
  截断成表tb_loader
  (
  ,ENAME位置(1:5),
  ,工作位置(10:18),
  ,萨尔位置(23:26)
  )   

  

  ,,   

  

  ——数据文件   

  

  (oracle@wjq SQL *装载机) vim wjq_test3美元。dat
  SMITH ,,CLEAK ,,,,,,3904年
  ALLEN ,,SALESMAN ,,,2891年
  WARD ,,,SALESMAN ,,,3128年
  KING ,,,PRESIDENT ,,252   

  

  ,   

  

  位置关键字用来指定列的开始和结束位置,如是指从第个字符开始截止到第个字符作为列的列值的。写法也很灵活,要实现上述功能还可以换成下列几种形式:   

  

  ①直接指定数值的方式叫作绝对偏移量,如果使用号,专业名词叫相对偏移量,表示上一个字段从哪里结束,这次就从哪里开始,相对偏移量也   可以再做运算,比如就表示从上次结束的位置的地方开始。   

  

  ②这种相对偏移量类型和长度的优势在于,你只需要为第一列   指定开始位置,其他列只需要指定列长度就可以了,实际使用中比较省的事。   

  

  sqlldr运行如上代码,并查询结果如下:   

  

  ,   

  

  ——sqlldr命令   

  

  (oracle@wjq SQL *装载机)$ sqlldr斯科特/老虎   控制=/u01/app/oracle/SQL *装载机/wjq_test3。ctl
  

  SQL *装载机:释放11.2.0.4.0 -生产星期二2017年10月31日15:04:13
  
  版权(c) 1982、2011、甲骨文和/或其附属公司只保留所有权利。

Oracle SQL *加载程序使用案例(二)