学习掌握oracle外表(external table)

摘要:
创建外部表的步骤:1。创建以“,”分隔的文件“TestTable.csv”至“D:Test”2。创建目录:createdirectoryTestTable_diras'D:Test';3.创建外部表:createtableTestTableorganizationexternal;各种参数说明1。typeoracle_加载器数据转换驱动器,oracle_加载程序是默认值。您也可以替换其他2个。defaultdirectoryTestTable_ Dirlocation指定外部表所在的文件夹和指定的文件3。Accessparameters设置转换参数,例如“,”作为字段之间的分隔符● 这些参数由访问驱动器定义,用于外部表1的错误处理。在创建外部表的末尾添加REJECTLIMIT子句,指示允许的错误数。

[转自] http://blog.chinaunix.net/uid-10697776-id-2935685.html


定义

External tables access data in external sources as if it were in a table in the database.

 

 

You can connect to the database and create metadata for the external table using DDL.

The DDL for an external table consists of two parts: one part that describes the Oracle

column types, and another part (the access parameters) that describes the mapping of

the external data to the Oracle data columns.

 

创建的语法类似于: "CREATE TABLE ... ORGANIZATION EXTERNAL"

数据在数据库的外部组织,是操作系统文件。

操作系统文件在数据库中的标志是通过一个逻辑目录来映射的。        

数据是只读的。(外部表相当于一个只读的虚表)

不可以在上面运行任何 DML 操作不可以创建索引。     

可以查询操作和连接。可以并行操作。

 

 

建立外部表的步骤

    1、创建以“,”分隔的文件“TestTable.csv”至“D:Test

    2、创建一个Directory:

    create directory TestTable_diras 'D:Test' ;

    3、创建一个外部表:

   create table TestTable(

      ID varchar2 ( 10 ),

      NAME varchar2 ( 20 ),

      TYPE varchar2 ( 20 ),

      AGEvarchar2 20 ))

   organization external (

      type oracle_loader

      default directory TestTable_dir

      access parameters (fields terminatedby ',' )

      location 'TestTable.csv' )

      );

 

各类参数说明

    1、type oracle_loader

      数据转换驱动器,oracle_loader为默认,也可以改换其他

    2、defaultdirectory TestTable_dir

       location ('TestTable.csv')

      指定外部表所在文件夹以及指定文件

    3、accessparameters

     设置转换参数,例如(fields terminatedby',')表示以','为字段间的分隔符

      ● 参数由访问驱动程序定义

 

外部表的错误处理

    1、REJECT LIMIT子句

      在创建外部表时最后加入LIMIT子句,表示可以允许错误的发生个数。

      * 默认的REJECT LIMIT值为0

      * REJECT LIMIT UNLIMITED则不会报错

    2、BADFILE 和 NOBADFILE 子句

      在accessparameters中加入BADFILE'BAD_FILE.txt'子句,则所有数据转换错误的值会被放入'BAD_FILE.txt'

      使用NOBADFILE子句则表示忽略转换错误的数据

      ● 如果不写BADFILE或NOBADFILE,则系统自动在源目录下生成与外部表同名的.BAD文件

      ● BADFILE只能记录前1次操作的结果,他会被第2次操作所覆盖。

    3、LOGFILE 和 NOLOGFILE 子句

      在accessparameters中加入LOGFILE'LOG_FILE.log'子句,则所有Oracle的错误信息放入'LOG_FILE.log'

      使用NOLOGFILE子句则表示不记录错误信息到log中

      ● 如果不写LOGFILE或NOLOGFILE,则系统自动在源目录下生成与外部表同名的.LOG文件

 

修改外部表语句

    外部表与堆表一样可以之用ALTER TABLE命令修改表属性

    * REJECT LIMIT        --错误数

    * DEFAULT DIRECTORY   --默认目录

    * ACCESS PARAMETERS   --参数

    * LOCATION            --数据文件

    * ADD COLUMN          --增加列

    * MODIFY COLUMN       --列定义

    * DROP COLUMN         --删除列

    * RENAME TO           --外部表更名

 

其他约束

    ● 外部表无法使用insert、update、delete等操作,要修改其数据只能通过修改数据文件。

    ● 外部表不能建立索引,如要建立,则需要先create table XX as select * from TestTable

 

PS:

     1.外部表可以加载和卸载数据泵格式的数据,只需把organization external里的参数type设置为oracle_datapump。

            create table all_objects_unload
            organization external
                   (
                   type oracle_datapump
                  default directory testdir
                  location('allobjects.dat')
                  )
            as
            select * from all_objects

免责声明:文章转载自《学习掌握oracle外表(external table)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇怎么设置(控制)移动端的字体大小使用plsql创建用户并授权(图形化界面)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

hive-命令操作记录

Hive 的官方文档请参考:http://wiki.apache.org/hadoop/Hive/LanguageManual 。 Create Table CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name data_type [COMMENT col_comment], .....

HiveSQL 数据定义语言(DDL)

第一章、数据定义语言(DDL)概述 1.1 DDL语法的作用 数据定义语言 (Data Definition Language, DDL),是SQL语言集中对数据库内部的对象结构进行创建,删除,修改等的操作语言,这些数据库对象包括database(schema)、table、view、index等。核心语法由CREATE、ALTER与DROP三个所组成。D...

Oracle11g温习-第十二章:tables

2013年4月27日 星期六 10:44 1、表的功能 存储、管理数据的基本单元(二维表:由行和列组成) 2、表的类型 1)普通表:【heap table(堆表) :数据存储时,无序的,对它的访问采用全表扫描】。 2)分区表:【(>2G) 对大表进行优化(Range Partitioning,List PartitioningHash P...

Hive面试题收集 ---阿善重要

Hive 原理 1.用户提交查询等任务给Driver。 2.编译器获得该用户的任务Plan。 3.编译器Compiler根据用户任务去MetaStore中获取需要的Hive的元数据信息。 4.编译器Compiler得到元数据信息,对任务进行编译,先将HiveQL转换为抽象语法树,然后将抽象语法树转换成查询块,将查询块转化为逻辑的查询计划,重写逻辑查询计划,...

Hive 基础

Facebook为了解决海量日志数据的分析而开发了hive,后来开源给了Apache基金会组织。 hive是一种用SQL语句来协助读写、管理存储在HDFS上的大数据集的数据仓库软件。 Hive 特点 1 是基于 Hadoop 的一个数据仓库工具;2 Hive 最大的特点是将 Hive SQL语句转换为 MapReduce、Tez 或者 spark 等任务执...