--外表(external table)就像普通的表对像一样,可以select等,只是它是只读的,数据库中只保存了表结构的描述,表数据却没有存放在数据库内,而是存放在了文件系统上。当用户想偶尔使用数据库外的结构化数据时,用起外表来就非常方便,甚至比sqlldr都要方便的多。外表相当于一个只读的虚表,不能dml操作,不能创建索引,但是可以建视图、查询、连接及并行操作。
1、oracle中使用如下语句创建目录:create or replace directory background_dump_dest_dir as '/u01/oracle/product/admin/TEST/bdump‘;--目录是数据文件的存放目标,数据文件通常要求是文本文件
2、使用该目录创建外表:
create table alert_log_external
(line varchar2(4000) ) --创建的外部表的列,可以根据需求写
organization external --固定语法
(type oracle_loader
default directory background_dump_dest_dir
access parameters (
records delimited by newline
nobadfile
nologfile
nodiscardfile
fields terminated by #$~=ui$X --遇到#$~=ui$X符号时终止
missing field values are null --缺失部分为空
(line)
)
location ( name_alert ) )--name_alert为数据文件名
reject limit unlimited;
这样一个外部表就算创建完成了。
select * from alert_log_external;--像普通表一样可以进行查询