暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

管理外部表

原创 神经蛙 2023-08-16
141

官方文档地址:https://docs.oracle.com/cd/E11882_01/server.112/e25494/tables.htm#ADMIN13460

关于外部表

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;

最后修改时间:2023-08-19 07:31:03
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

目录
  • 外部表特点