设为首页 收藏本站
查看: 1015|回复: 0

[经验分享] Sql Loader的简单使用

[复制链接]

尚未签到

发表于 2018-10-19 06:09:34 | 显示全部楼层 |阅读模式
  之前总结的关于SQL*Loader的用法,今天又用到,又翻出来看看
  SQL*Loader 可将外部文件中的数据加载到Oracle DB 的表中。它具有一个功能强大的数据分析引擎,因此对数据文件中数据的格式没有什么限制。
  SQL*Loader 使用以下文件:

  •   输入数据文件:SQL*Loader 从控制文件中指定的一个或多个文件(或操作系统的等效文件)中读取数据。从SQL*Loader 的角度看,数据文件中的数据是按记录组织的。一个特定的数据文件可采用固定记录格式、可变记录格式或流记录格式。可通过控制文件中的INFILE参数指定记录格式。如果未指定记录格式,默认格式为流记录格式。
  •   控制文件:控制文件是一个文本文件,它是使用SQL*Loader 可识别的语言编写的。控制文件指示SQL*Loader 在何处查找数据、如何分析和解释数据以及在何处插入数据等等。控制文件算是一个导入的模板。
  •   日志文件:SQL*Loader 开始执行时,会创建日志文件。如果不能创建日志文件,执行就会终止。日志文件包含加载操作的详细说明,包括加载过程中发生的任何错误的说明。
  •   坏文件:坏文件中包含被SQL*Loader 或Oracle DB 拒绝的记录。当输入格式无效时,SQL*Loader 就会拒绝数据文件记录。SQL*Loader 接受处理某一数据文件记录后,会将该数据文件记录发送到Oracle DB,以便能够作为一行插入到表中。如果Oracle DB 确定该行有效,就会将该行插入到表中;如果确定该行无效,则会拒绝该记录,然后SQL*Loader 会将该记录放入坏文件中。
  •   放弃文件:仅当需要这种文件并且指定了应启用放弃文件时,才会创建此文件。放弃文件中包含的记录是因不符合控制文件指定的任何记录选择标准而从加载中过滤掉的记录
  后面三个可以不选
  操作步骤如下:
  1),建立数据文件,我这里使用的是从plsql developer中导出来的emp表emp.csv。
  内容如下:
DSC0000.jpg

  2),target表要存在,要保持与数据文件的字段定义一致,否则会出错。这里我使用as select方式根据emp表创建一张表emp3,再使用delete语句清空表数据。
  3),建立一个控制文件user.ctl。我这里的控制文件是我用EM工具生成的。内容如下:
OPTIONS (skip=1,rows=128)  
    LOAD DATA
  
    INFILE '/u01/app/oracle/oradata/orcl/emp.csv'
  
    APPEND
  
    INTO TABLE SCOTT.EMP3
  
    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
  
    (
  
      EMPNO INTEGER EXTERNAL,
  
      ENAME CHAR,
  
      JOB CHAR,
  
      MGR CHAR,
  
      HIREDATE DATE,
  
      SAL INTEGER EXTERNAL,
  
      COMM INTEGER EXTERNAL,
  
      DEPTNO INTEGER EXTERNAL
  
    )
  注:
  1.LOAD DATA语句通知SQL*Loader 开始新数据加载操作
  2.INFILE关键字指定含有待加载数据的数据文件的名称。这里还可以使用 BADFILE、DISCARDFILE 来指定坏数据和丢弃数据的文件
  3.APPEND关键字是将数据加载到非空表时可以使用的选项之一。要将数据加载到空表中,请使用INSERT关键字。
  4.INTO TABLE 要插入记录的表
  5.Fields terminated by ","   定义数据中每行记录用 "," 分隔
  6.Optionally enclosed by '"' -- 数据中每个字段用 '"' 框起,比如字段中有 "," 分隔符时
  7.第一行处OPTIONS,skip=1是跳过第一行,rows=128定义要加载的行数限制
  4),执行命令:
  
sqlldr system/oracle control=user.ctl
  截图如下:
DSC0001.jpg

  5),查询验证
DSC0002.jpg

  sqlldr更多用法请自行网上搜索···



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-623294-1-1.html 上篇帖子: sql精典語句 下篇帖子: T-SQL语句之创建、修改、删除数据库
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表