oracle为外部表主要提供了两种驱动
1. the loader access driver, or ORACLE_LOADER
2. the import/export access driver, or ORACLE_INTERNAL
试验过程如下:
1.首先为用户scott付权限create any directory
grant create any directory to scott with admin option;
2.建默认目录
select * from all_directories ;
create directory emp_dir as 'C:\TEMP' ;
3.建外部表的语句
CREATE TABLE oldemp (
empno NUMBER, empname CHAR(20), birthdate DATE)
ORGANIZATION EXTERNAL
(TYPE ORACLE_LOADER
DEFAULT DIRECTORY emp_dir
ACCESS PARAMETERS
(RECORDS DELIMITED BY NEWLINE
BADFILE 'bad_emp'
LOGFILE 'log_emp'
FIELDS TERMINATED BY ','
(empno CHAR,
empname CHAR,
birthdate CHAR
date_format date mask "dd-mon-yyyy"
)
)
LOCATION ('emp1.txt')
)
PARALLEL 5
REJECT LIMIT 200;
4.因为外部表是只读的,无法进行DML操作,并且无法建索引,所以我们只能直接编辑保存外部表的文件。
在emp1.txt里面加入两行,如下,注意日期的格式收nls_database_parameters里面的NLS_DATE_LANGUAGE的影响
7369,SMITH,17-DEC-1950
7499,ALLEN,20-FEB-1951
5.查询外部表
select * from oldemp ;
6.管理外部表
select * from DBA_EXTERNAL_TABLES ;
select * from DBA_EXTERNAL_LOCATIONS ;
补充一下:如果发现有错误,请查看这两个文件BADFILE 'bad_emp',LOGFILE 'log_emp'