您现在的位置是:首页 >

外表什么意思 教会你掌握oracle外表

火烧 2023-03-31 17:09:18 1099
教会你掌握oracle外表   外表 exter al ta le 就像普通的表对像一样 可以 elect等 只是它是只读的 数据库中只保存了表结构的描述 表数据却没有存放在数据库内 而是存放在了文件
外表什么意思 教会你掌握oracle外表

教会你掌握oracle外表  

  外表(external table)就像普通的表对像一样 可以select等 只是它是只读的 数据库中只保存了表结构的描述 表数据却没有存放在数据库内 而是存放在了文件系统上 当用户想偶尔使用数据库外的结构化数据时 用起外表来就非常方便 甚至比sqlldr都要方便的多 在这篇文章里 我们为大家演示了三步就掌握oracle外表过程 通过这次学习 也许大家就会发展原来学习oracle也是好容易哦      第一步 创建目录并授权  目录是数据文件的存放目标 数据文件通常要求是文本文件 这个过程在 i以前是需要配置utl_file_dir参数的       sys@TEST>!ls /home/oracle/temp   user ctl userlist txt user log    rudolf@TEST> sys@TEST>conn system/alibaba   Connected  sys@TEST>   sys@TEST>CREATE DIRECTORY   TEMP AS /home/oracle/temp/ ;    Directory created     sys@TEST>grant read write on directory TEMP to rudolf;    Grant succeeded       第二步 创建外表与测试    rudolf@TEST>CREATE TABLE USERLIST       (       ID NUMBER        USERNAME VARCHAR ( )        EMAIL VARCHAR ( )      )      ORGANIZATION external      (       TYPE oracle_loader      DEFAULT DIRECTORY TEMP      ACCESS PARAMETERS      (       RECORDS DELIMITED BY NEWLINE CHARACTERSET US ASCII       BADFILE TEMP : userlist bad        DISCARDFILE TEMP : userlist dis        LOGFILE TEMP : user log        READSIZE        FIELDS TERMINATED BY OPTIONALLY ENCLOSED BY LDRTRIM       MISSING FIELD VALUES ARE NULL       REJECT ROWS WITH ALL NULL FIELDS       (        ID CHAR( )         TERMINATED BY OPTIONALLY ENCLOSED BY         USERNAME CHAR( )         TERMINATED BY OPTIONALLY ENCLOSED BY         EMAIL CHAR( )         TERMINATED BY OPTIONALLY ENCLOSED BY        )      )      location      (        userlist txt       )     )REJECT LIMIT UNLIMITED      rudolf@TEST>/    Table created     rudolf@TEST>l      select id username from userlist where rownum <      * rudolf@TEST>/        ID USERNAME            RudolfLu        tomgu        coug        chao_ping        parrotao        cnoug        FilsDeDragon        Dragon     rows selected        第三步 理解外表数据结构与create table anization external语法  大家都用过sqlldr吧?外表的数据文件的结构呢就同sqlldr能读的数据文件结构一样了 那么语法呢?嘿嘿 别急 让我们先来做个sqlldr的练习吧      [oracle@rac temp]$ head userlist txt    RudolfLu     tomgu     coug     chao_ping     parrotao     cnoug     FilsDeDragon     Dragon     Xavier     [oracle@rac temp]$ cat user ctl    LOAD INFILE /home/oracle/temp/userlist txt    badfile /home/oracle/temp/userlist bad    discardfile /home/oracle/temp/userlist dis    APPEND INTO TABLE userlist fields terminated by    optionally enclosed by    trailing nullcols   ( id char( )     username char( ) )    rudolf@TEST>create table userlist      (id number        username varchar ( )      );    Table created    rudolf@TEST>!   [oracle@rac temp]$ sqlldr rudolf/nix@test world control= /user ctl external_table=GENERATE_ONLY       注意 我们加了一个external_table的参数 它的作用是告诉sqlldr不用真实load数据 而是生成包含external table 创建脚本的log文件      [oracle@rac temp]$ ls   user ctl   userlist txt   user log [oracle@rac temp]$ cat user log     SQL*Loader: Release Production on Wed Dec : :     Copyright (c) Oracle Corporation    All rights reserved     Control File:    /user ctl   Data File:     /home/oracle/temp/userlist txt    Bad File:     /home/oracle/temp/userlist bad    Discard File: /home/oracle/temp/userlist dis      CREATE DIRECTORY statements needed for files       CREATE DIRECTORY SYS_SQLLDR_XT_TMPDIR_ AS /home/oracle/temp/     CREATE TABLE statement for external table:       CREATE TABLE SYS_SQLLDR_X_EXT_USERLIST     (    ID NUMBER   USERNAME VARCHAR ( ) )   ORGANIZATION external    (    TYPE oracle_loader    DEFAULT DIRECTORY SYS_SQLLDR_XT_TMPDIR_     ACCESS PARAMETERS     (     RECORDS DELIMITED BY NEWLINE CHARACTERSET US ASCII     BADFILE SYS_SQLLDR_XT_TMPDIR_ : userlist bad      DISCARDFILE SYS_SQLLDR_XT_TMPDIR_ : userlist dis      LOGFILE user log_xt      READSIZE      FIELDS TERMINATED BY OPTIONALLY ENCLOSED BY LDRTRIM      MISSING FIELD VALUES ARE NULL      REJECT ROWS WITH ALL NULL FIELDS      (      ID CHAR( )       TERMINATED BY OPTIONALLY ENCLOSED BY       USERNAME CHAR( )       TERMINATED BY OPTIONALLY ENCLOSED BY     )    )    location     (      userlist txt     )   )REJECT LIMIT UNLIMITED   lishixinzhi/Article/program/Oracle/201311/18672  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码