`

Oracle外部表 External Table

 
阅读更多
参考
http://www.blogjava.net/wxqxs/archive/2008/10/13/237180.html?opt=admin
http://hi.baidu.com/ray315/blog/item/153c97a33cd26caacbefd0de.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.

u 创建的语法类似于: "CREATE TABLE ... ORGANIZATION EXTERNAL"
u 数据在数据库的外部组织,是操作系统文件。
u 操作系统文件在数据库中的标志是通过一个逻辑目录来映射的。       
u 数据是只读的。(外部表相当于一个只读的虚表)
u 不可以在上面运行任何 DML 操作,不可以创建索引。    
u 可以查询操作和连接。可以并行操作。


建立外部表的步骤:
    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

转自:http://arvinnan.iteye.com/blog/308638
分享到:
评论

相关推荐

    oracle外部表Externaltable[借鉴].pdf

    "Oracle 外部表(External table)" Oracle 外部表(External table)是一种特殊的表类型,它允许 Oracle 数据库将一个普通的文本格式的操作系统文件看作是一个数据库表,可以象普通表一样进行 select 操作,可以建...

    oracle外部表的使用

    下面我们将深入探讨Oracle外部表的创建、使用以及相关的关键知识点。 ### 一、创建外部表 外部表的创建主要通过`CREATE TABLE`语句,加上`ORGANIZATION EXTERNAL`子句来实现。以下是一个创建外部表的基本语法: `...

    \Oracle 外部表

    ### Oracle 外部表知识点详解 #### 一、外部表的概念及特性 ...总之,Oracle外部表为用户提供了一种高效且灵活的方式来处理文件系统中的数据,减少了数据传输和转换的时间成本,提高了数据处理效率。

    ORACLE建外部表笔记

    ### ORACLE创建外部表知识点详解 #### 一、创建外部表背景及意义 在Oracle数据库中,外部表是一种特殊的表类型,它允许直接访问文件系统中的数据文件,而无需将这些数据加载到数据库中。这种方式既节省了存储空间...

    关于ORACLE外部表的使用方法

    ### 关于ORACLE外部表的使用方法 #### 一、Oracle外部表简介 在Oracle数据库中,外部表(External Table)是一种特殊的表类型,它允许用户通过标准的SQL语句来查询存储在文件系统中的数据,而无需将这些数据加载到...

    oracle 外部表语法

    综上所述,Oracle外部表为数据库用户提供了一种高效、灵活的方式来访问和管理非结构化或半结构化数据,同时提供了一系列实用的功能,如错误处理机制和并行处理能力,使其成为处理大量外部数据的强大工具。

    Oracle外部表特性深入浅出

    ### Oracle外部表特性深入浅出 #### 一、外部表概述 外部表是Oracle自9i版本后引入的一个新特性,它不同于传统意义上的数据库表,实际上并不存储在数据库内部,而是指向操作系统中的某个文件。通过定义外部表的元...

    oracle 10g创建外部表

    Oracle 10g中的外部表(External Tables)是一种非常实用的功能,它允许数据库直接读取存储在操作系统文件系统中的数据,而无需先将其导入到常规的数据库表中。这种机制对于处理大量非结构化或半结构化数据,如日志...

    Oracle数据库外部表.doc

    **外部表(External Tables)**是Oracle数据库中一种特殊的数据存储方式,它允许用户通过普通的SQL查询操作来访问存储在数据库之外的数据文件中的数据。这种设计的主要目的是为了提高数据加载速度,并支持多种格式的...

    etl.rar_Table_etl_etl oracle

    Oracle外部表由三部分组成:定义外部表的DDL语句、数据文件和一个可选的外部表目录。DDL语句定义了外部表的结构,包括列名、数据类型等。数据文件则包含要访问的实际数据,可以是文本文件、CSV文件或其他格式。外部...

    Oracle.表与锁

    Nested Table和Object Table用于复杂数据类型的存储,External Table允许将外部文件当作表来处理。 接着,陶冶先生提到了High Water Mark(HWM),这是Oracle为每个表维护的一个标记,记录了表使用过的最大数据库块...

    rman_xttconvert_v3.zip Oracle XTTS 必备工具 mos上下载的xtts迁移脚本

    Oracle XTTS(eXternal Table Transport Service)是Oracle数据库提供的一种高级数据迁移工具,它利用外部表技术实现大规模数据的快速迁移。XTTS在Oracle 12c及更高版本中引入,尤其在Oracle 19c中得到了进一步的...

    oracle与greenplum数据交互.docx

    - **可写外部表 (Writabe External Table)**:一种高效的数据导出机制,能够利用Greenplum的并行架构快速导出大量数据到文件系统。 - **语法**: ```sql CREATE WRITABLE EXTERNAL TABLE tab_name (col1, col2, ....

    Oracle异构迁移工具rmanXTTS+官方文档

    RMAN(Recovery Manager)是Oracle数据库内置的备份和恢复工具,而XTTS(eXternal Table Transportable Tablespace)则是RMAN的一项扩展功能,用于跨平台的表空间迁移。 首先,让我们深入了解RMAN。RMAN提供了一...

    ocp_071 oracle ocp

    3. **外部表(External Tables)**:外部表是Oracle数据库中的一种特殊表类型,它提供了一种方便的方式来访问存储在数据库外部的数据。用户可以使用CREATE TABLE AS SELECT语句将外部表的数据加载到数据库内的常规表...

    PostgreSQL & Oracle-备份恢复技术大比拼

    14. Oracle的外部表(External Table)和相关的API 15. SQL*Loader的基本概念、组成部分及其在数据加载中的作用 接下来,我们将详细地介绍这些知识点。 在数据库管理领域,备份与恢复是维护数据完整性和可用性的...

    怎样DBLink_Oracle到MySql

    1. **创建外部表**:在Oracle中,可以使用外部表来访问MySQL数据库。首先,需要创建一个指向MySQL数据的外部表。 ```sql CREATE DIRECTORY mysql_dir AS '/path/to/mysql/data'; GRANT READ ON DIRECTORY mysql_...

    Oracle中的sqlldr用法.doc

    Oracle中的sqlldr用法详解 Oracle中的sqlldr工具是用来将数据从外部文件加载到Oracle数据库中...参数external_table指定了是否使用外部表来加载数据,包括不使用外部表、生成创建外部表的sql和处理数据的sql两种模式。

    教你怎样用Oracle方便地查看报警日志错误

    这篇指南将教你如何方便地查看和管理Oracle的报警日志,包括备份、清除以及通过外部表进行查询。 首先,备份和清除报警日志是维护数据库健康状态的基础步骤。在Oracle的默认安装路径 `$ORACLE_HOME/SID/bdump/` 下...

Global site tag (gtag.js) - Google Analytics