知识大全 三步教会你掌握Oracle外表(externaltable)

Posted

篇首语:不塞不流,不止不行。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 三步教会你掌握Oracle外表(externaltable)相关的知识,希望对你有一定的参考价值。

三步教会你掌握Oracle外表(externaltable)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  外表(external table)就像普通的表对像一样 可以select等 只是它是只读的 数据库中只保存了表结构的描述 表数据却没有存放在数据库内 而是存放在了文件系统上 当用户想偶尔使用数据库外的结构化数据时 用起外表来就非常方便 甚至比sqlldr都要方便的多 在这篇文章里 我们为大家演示了

  三步就掌握Oracle外表过程 通过这次学习 也许大家就会发展原来学习oracle也是好容易哦

  第一步 创建目录并授权

  目录是数据文件的存放目标 数据文件通常要求是文本文件 这个过程在 i以前是需要配置utl_file_dir参数的 复制内容到剪贴板

  代码  !ls >sys@TEST>!ls /home/oracle/temp  user ctl userlist txt user log  rudolf@TEST>  conn >sys@TEST>conn system/alibaba  Connected   sys@TEST>  CREATE >sys@TEST>CREATE DIRECTORY TEMP AS /home/oracle/temp/ ;  Directory created   grant >sys@TEST>grant read write on directory TEMP to rudolf;  Grant succeeded

  第二步 创建外表与测试 复制内容到剪贴板

  代码 cellPadding= width= % bgColor=#ffffff border= >  CREATE >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

   cellPadding= width= % bgColor=#ffffff border= >   USERNAME CHAR( )   TERMINATED BY OPTIONALLY ENCLOSED BY    EMAIL CHAR( )   TERMINATED BY OPTIONALLY ENCLOSED BY    )   )   location   (   userlist txt    )   )REJECT LIMIT UNLIMITED     / >rudolf@TEST>/  Table created   l >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

  瞧 成功了 外表就这么简单 可是只有二步啊 第三步在哪里呢?你也许会问 还有啊 userlist txt要固定的格式吗?create table……的语法这样的狂复杂 每一项都是什么含义呢?

  这就是第三步要教给大家的东西了

  第三步 理解外表数据结构与create table …… anization external语法

  大家都用过sqlldr吧?外表的数据文件的结构呢就同sqlldr能读的数据文件结构一样了 那么语法呢?嘿嘿 别急 让我们先来做个sqlldr的练习吧 cellPadding= width= % bgColor=#ffffff border= >   [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

   cellPadding= width= % bgColor=#ffffff border= >  APPEND  INTO TABLE userlist  fields terminated by optionally enclosed by   trailing nullcols  ( id char( )   username char( )  )  create >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文件 cellPadding= width= % bgColor=#ffffff border= >  [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 cellPadding= width= % bgColor=#ffffff border= >  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  

  瞧 原来我们更本不用担心怎么写create external table的语句呢 sqlldr就可以帮我们生成了!

cha138/Article/program/Oracle/201311/18052

相关参考

知识大全 教你快速掌握一个简单的Oracle定时任务

教你快速掌握一个简单的Oracle定时任务  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!一在PLS

知识大全 教你快速掌握Oracle数据库的备份策略

教你快速掌握Oracle数据库的备份策略  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  主要介绍

知识大全 教你快速掌握Oracle数据库中的bfile

教你快速掌握Oracle数据库中的bfile  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  具体

知识大全 教你轻松掌握Oracle数据库的后备和恢复

教你轻松掌握Oracle数据库的后备和恢复  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  当我们

知识大全 教你轻松掌握Oracle9i里指针共享的增强

教你轻松掌握Oracle9i里指针共享的增强  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在O

知识大全 对ORACLE的外部表的简单介绍

对ORACLE的外部表的简单介绍  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  External

知识大全 Oracle中左右连接外表带条件的写法

Oracle中左右连接外表带条件的写法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!研究时测试用的

教会你如何诊断银屑病

如果说可以及时的诊断出一种疾病,对于我们进行治疗是非常有帮助作用的,毕竟要在疾病的最佳治疗时间进行治疗这样的道理,我们每个人都很清楚,那么对于银屑病有应该如何来诊断呢?首先来了解银屑病的发病部位在哪里

知识大全 C语言之extern声明辨析[2]

C语言之extern声明辨析[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  问题exter

知识大全 C语言之extern声明辨析[1]

C语言之extern声明辨析[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nb