管理外部表

官方文档地址:Managing Tables

关于外部表

Oracle 数据库允许您对外部表中的数据进行只读访问。外部表定义为不驻留在数据库中的表,通过向数据库提供描述外部表的元数据,数据库能够公开外部表中的数据,就好像它是驻留在常规数据库表中的数据一样。可以使用SQL直接和并行查询外部数据。

外部表特点

  • 可以选择、联接或排序外部表数据。还可以为外部表创建视图和同义词。但是,不能对外部表执行 DML 操作(、 或 ),也不能创建索引。
  • 无需先将外部数据加载到数据库中。
  • 不支持虚拟列

创建外部表

建表语法:

CREATE TABLE xxx ( 字段名  字段类型) ORGANIZATION EXTERNAL (TYPE xxx DEFAULT DIRECTORY xxx ACCESS PARAMETERS( ACCESS PARAMETERS 参数 ) LOCATION ('test1.txt') ) REJECT LIMIT UNLIMITED;

在Oracle中,可以使用外部表的ACCESS PARAMETERS子句来指定访问外部数据文件的参数。以下是一些常用的 ACCESS PARAMETERS 参数选项:

  • RECORDS DELIMITED BY:指定记录之间的分隔符。常见的选项包括NEWLINE(默认,表示使用换行符分隔记录)和CHAR(字符)(使用指定字符分隔记录)。
  • FIELDS TERMINATED BY:指定字段之间的分隔符。常见的选项包括逗号,、制表符\t等。
  • MISSING FIELD VALUES:指定用于表示缺失字段值的占位符。常见的选项包括ARE NULL(表示缺失字段值为NULL)和DEFAULT value(使用指定的默认值作为缺失字段值)。
  • SKIP n: 指定跳过前n行。例如,SKIP 1表示跳过第一行。
  • BADFILE 'filename':指定一个用于存储无法加载到表中的行的坏文件(bad file)。这些行可能不符合定义的格式或条件。
  • LOGFILE 'filename':指定一个用于记录外部表加载过程的日志文件。
  • RECORDS DELIMITED BY NEWLINE CHARACTERSET UTF8 :指定字符为 UTF-8 / ZHS16GBK。
  • OPTIONALLY ENCLOSED BY '"':选项用于指定包围字段值的可选字符。
ACCESS PARAMETERS 
       ( 
         records delimited by newline 
         badfile admin_bad_dir:'empxt%a_%p.bad' 
         logfile admin_log_dir:'empxt%a_%p.log' 
         fields terminated by ',' 
         missing field values are null 
         ( employee_id, first_name, last_name, job_id, manager_id, 
           hire_date char date_format date mask "dd-mon-yyyy", 
           salary, commission_pct, department_id, email 
         ) 
       ) 

LOCATION可指定多个文件,如 LOCATION ('empxt1.txt', 'empxt2.txt')

更改外部表

外部表的更改表子句

更改表子句 描述

REJECT LIMIT

更改拒绝限制。默认值为 。0

ALTER TABLE admin_ext_employees
   REJECT LIMIT 100;

PROJECT COLUMN

确定访问驱动程序如何验证后续查询中的行:

  • PROJECT COLUMN REFERENCED:访问驱动程序仅处理查询的选择列表中的列。从同一外部表查询不同的列列表时,此设置可能无法提供一组一致的行。

  • PROJECT COLUMN ALL:访问驱动程序处理外部表上定义的所有列。查询外部表时,此设置始终提供一组一致的行。这是默认值。

ALTER TABLE admin_ext_employees
   PROJECT COLUMN REFERENCED;

ALTER TABLE admin_ext_employees
   PROJECT COLUMN ALL;

DEFAULT DIRECTORY

更改默认目录规范

ALTER TABLE admin_ext_employees 
    DEFAULT DIRECTORY admin_dat2_di

删除外部表

与普通表删除一样,使用 drop table xxxx;

你可能感兴趣的:(Oracle,oracle,数据库,外部表)