Sql*Loader使用

      Oracle支持的导入导出方式比较多样,从10G之前的EXP/IMP,到10G的EXPDP/IMPDP,还有可传输表空间的应用,Spatial中EasyLoad的使用,建立外部表,以及使用SQL*Loader加载外部数据等,每种应用对应不同的场景,今天简单试用下SQL*Loader来实现外部数据加载。

 

      SQL*Loader的框架主要包含控制文件、日志文件、错误文件、丢弃文件等,其中控制文件包含如何加载数据的总规则,其他文件包含加载过程中产生的相应数据。

                                                                   --日志文件

      SQL*Loader=>控制文件(指定数据源)=>--错误文件    =>加载数据 =>验证数据

                                                                   --丢弃文件

      1. 给出数据源

          这里以SCOTT用户下的DEPT表为数据源,构建一个外部文件

 

          SQL> spool 'f:\sp.txt'

          SQL> set heading off
          SQL> select * from dept;

                   10 ACCOUNTING     NEW YORK
                   20 RESEARCH       DALLAS
                   30 SALES          CHICAGO
                   40 OPERATIONS     BOSTON

          SQL> spool off

         

          找到输出文件,将多余的空格去除并在记录之间以‘,’隔开,方便数据加载时使用分隔符

 

      2. 编写控制文件

          主要包含数据源、目的地、加载规则等,创建 F:\sqlldr.ctl,包含以下内容

          load data                          -- 新的装载任务
          infile 'f:\sp.txt'                   -- 数据源
          into table dept_cp             -- 目的地
          fields terminated by ','       -- 装载规则
          (deptno,dname,loc)

 

      3. 开始装载

         

          D:\>sqlldr scott/tiger control='f:\sqldr.ctl' log='f:\sqldr.log'

         

          装载结束后查看日志,可以检查总数据量及失败数据量,并且将错误数据和丢弃数据放在错误文件和丢弃文件中

你可能感兴趣的:(oracle,sql,框架,F#)