外部表作为Oracle的一种表类型,虽然不能像普通库表那么应用方便,但有时在数据迁移或数据加载时,也会带来极大的方便,有时比用sql*loader加载数据来的更为方便,下面就将建立和应用外部表的命令和操作记录如下:
--创建存放文件的directory对象
sqlplus username/passwd@prod
create directory ex_data as '/home/ex_data/';
--创建外部表
CREATE TABLE tab1_ex
(
C1 VARCHAR2(32 BYTE),
C2 VARCHAR2(64 BYTE),
C3 VARCHAR2(32 BYTE),
C4 VARCHAR2(255 BYTE),
C5 VARCHAR2(128 BYTE),
C6 VARCHAR2(36 BYTE),
C7 VARCHAR2(64 BYTE),
C8 VARCHAR2(128 BYTE),
C9 VARCHAR2(64 BYTE),
C10 VARCHAR2(64 BYTE),
C11 VARCHAR2(8 BYTE),
C12 VARCHAR2(8 BYTE),
C13 VARCHAR2(8 BYTE),
C14 VARCHAR2(8 BYTE),
C15 VARCHAR2(8 BYTE),
C16 VARCHAR2(8 BYTE),
C17 VARCHAR2(8 BYTE),
C18 VARCHAR2(8 BYTE),
C19 VARCHAR2(8 BYTE),
C20 VARCHAR2(32 BYTE),
C21 VARCHAR2(8 BYTE),
C22 VARCHAR2(8 BYTE)
)
ORGANIZATION EXTERNAL
( TYPE ORACLE_LOADER
DEFAULT DIRECTORY ex_data
ACCESS PARAMETERS
( records delimited by newline
fields terminated by '|'
)
LOCATION (ex_data:'tab1_ex.txt')
);
--应用外部表
select count(*) from tab1_ex;
--注:
1.虽然外部表可以和普通库表一样查询,但不可以在上面你的列上建立索引;
2.也不可以insert into数据到外部表内;
3.也不可以update和delete外部表内的数据;
: