外部表指不在数据库中表,指操作系统上的按一定格式分割的文本文件或者其他类型的表。外部表对于数据库来说是一个试图,需要建立一个临时表来与之关联,不是真正存在的表。不能进行DML,如创建索引等。
创建语法:CREATE TABLE Extnl_Table
(
Col01 varchar2(100),
Col02 Number,
......
)
ORGANIZATION EXTERNAL
( TYPE ORACLE_LOADER
DEFAULT DIRECTORY "XXX"
ACCESS PARAMETERS
( RECORDS DELIMITED BY 0X'0A' 。--Records关键字后定义如果识别数据行
SKIP 1 --SKIP X —— 跳过X行数据,有些文件中第一行是列名,需要跳过第一行,则使用SKIP 1
fields terminated by ',' -- Fields关键字后定义如果识别字段
enclosed by '"' —— 字段引用符,包含在此符号内的数据都当成一个字段。例如一行数据格式如:"abc","a""b,""c,"。使用参数TERMINATED BY ',' ENCLOSED BY '"'后,系统会读到两个字段,第一个字段的值是abc,第二个字段值是a"b,"c,。
LRTRIM —— 删除空白字符。
MISSING FIELD VALUES ARE NULL --空缺值都设为Null
REJECT ROWS WITH ALL NULL FIELDS
)
LOCATION
( "CJ_DIR":'data.txt'
)
)
;