zoukankan      html  css  js  c++  java
  • Oracle数据加载之外部表的介绍

    环境:
    服务端:RHEL6.4 + Oracle 11.2.0.4
    目录:
    一、 创建外部表

    二、 加载外部表数据到普通表

    三、References

    一、 创建外部表

    1.1 创建外部表需要的目录

    ``` create or replace directory admin as '/u01/jingyu'; ```

    1.2 创建外部表

    ``` drop table dept_external purge; CREATE TABLE dept_external ( deptno NUMBER(6), dname VARCHAR2(20), loc VARCHAR2(25) ) ORGANIZATION EXTERNAL (TYPE oracle_loader DEFAULT DIRECTORY admin ACCESS PARAMETERS ( RECORDS DELIMITED BY newline BADFILE 'ulcase1.bad' DISCARDFILE 'ulcase1.dis' LOGFILE 'ulcase1.log' SKIP 10 FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"' ( deptno INTEGER EXTERNAL(6), dname CHAR(20), loc CHAR(25) ) ) LOCATION ('ulcase1.ctl') ) REJECT LIMIT UNLIMITED; ```

    1.3 创建外部表源文件

    创建源文件ulcase1.ctl ``` LOAD DATA INFILE * BADFILE 'sample.bad' DISCARDFILE 'sample.dsc' APPEND INTO TABLE emp WHEN (57) = '.' TRAILING NULLCOLS (deptno, dname, loc) BEGINDATA 10,ACCOUNTING,NEW YORK 20,RESEARCH,DALLAS 30,SALES,CHICAGO 40,OPERATIONS,BOSTON ``` 这里是把这个ctl文件当作数据文件使用,上面skip=10对应了是跳过前面10行无效信息,从数据行开始读取。

    1.4 查询外部表

    ``` SQL> select * from dept_external;
    DEPTNO DNAME                LOC
    

        10 ACCOUNTING           NEW YORK
        20 RESEARCH             DALLAS
        30 SALES                CHICAGO
        40 OPERATIONS           BOSTON
    
    <h1 id="2">二、 加载外部表数据到普通表</h1>
    <h2 id="2.1">2.1 创建普通表</h2>
    

    CREATE TABLE dept (
    deptno NUMBER(6),
    dname VARCHAR2(20),
    loc VARCHAR2(25)
    ) tablespace dbs_d_jingyu;

    <h2 id="2.2">2.2 直接插入</h2>
    

    insert into dept select * from dept_external;
    commit;

    <h2 id="2.3">2.3 直接路径插入</h2>
    

    insert /+append/ into dept select * from dept_external;
    commit;

    一般情况,直接路径插入的效率要高。因为:
    > 1. Data is appended to the end of the table, rather than attempting to use existing free space within the table.
    > 2. Data is written directly to the data files, by-passing the buffer cache.
    > 3. Referential integrity constraints are not considered. *
    > 4. No trigger processing is performed. *
    
    <h1 id="3">三、References</h1>
    
    - "APPEND Hint".[Online]  Available: 
    [https://oracle-base.com/articles/misc/append-hint](https://oracle-base.com/articles/misc/append-hint) (Sep 23,2015)
    - Oracle® Database SQL Language Reference 11g Release 2 (11.2)
  • 相关阅读:
    在泛型方法中返回泛型数组
    java泛型方法返回泛型结果
    hive -e和hive -f的区别(转)
    hive表批处理
    python网络编程——实现简单聊天
    python网络编程(转)
    python分布式编程(转)
    shell多线程之进程间通信(3)
    在xml文件中使用该控件
    Java文件中代码
  • 原文地址:https://www.cnblogs.com/jyzhao/p/4831759.html
Copyright © 2011-2022 走看看