外部表简介
外部表(External Table)特点:
- 外部表并没有在数据库中创建表,也不会为分配存储空间及存储外部数据。创建外部表只是在数据字典中创建了外部表的元数据,以便对应访问外部表中的数据。
- 允许以只读方式访问数据库外部的数据资料,如同访问数据库的内部数据表一样。
- 可以使用SQL 语句(select,join,sort 等)并行直接访问外部表,也可以为之建立view 和synonym。
- 不能使用DML 操作(update,insert,delete 等),也不能为外部表建立索引index。
- 不支持ANALYZE 语句采集外部表的统计数据,可以使用DBMS_STATS 包来采集外部表的统计数据。
- 不支持virtual columns
Oracle 对外部表的两种访问驱动方式(Access Drivers):
- ORACLE_LOADER
默认方式。使用了Oracle Loader 技术读取外部文件的数据。这种读取控制方式类似于SQL*Loader工具的控制文件(Control File)的应用。
- ORACLE_DATAPUMP
用于读取数据库的内部数据,一次性写入到外部表中,可以生成多个外部文件。然后再读取这些外部表数据。
ORACLE_LOADER External Tables
- Create the directory needed
mkdir -p /stage/data
mkdir -p /stage/log
mkdir -p /stage/bad
- Create the 1st data file /u01/stage/data/empxt1.dat
vi /stage/data/empxt1.dat
360,Jane,Janus,ST_CLERK,121,17-MAY-2001,3000,0,50,jjanus
361,Mark,Jasper,SA_REP,145,17-MAY-2001,8000,.1,80,mjasper
362,Brenda,Starr,AD_ASST,200,17-MAY-2001,5500,0,10,bstarr
......