External Tables是对sql*loader的一个补充它使你像访问数据库里的数据一样访问外部源数据
外部表怎么被创建
CREATE TABLEORGANIZATION EXTERNAL
TYPE 指定外部表访问驱动类型
两种选择第一ORACLE_LOADER 这种类型只能完成数据装入数据只能从文本数据文件中load
第二ORACLE_DATAPUMP 这种类型可以装入和卸出数据数据必须来自dump files
DEFAULT DIRECTORY 指定文件的存放路径路径是通过directory指定不是直接的操作系统路径
ACCESS PARAMETERS
LOCATION 是指定DIRECTORY地址中的文件
SQL> CREATE TABLE emp_load
(employee_number CHAR()
employee_dob CHAR()
employee_last_name CHAR()
employee_first_name CHAR()
employee_middle_name CHAR()
employee_hire_date DATE)
ORGANIZATION EXTERNAL
(TYPE ORACLE_LOADER
DEFAULT DIRECTORY def_dir
ACCESS PARAMETERS
(RECORDS DELIMITED BY NEWLINE
FIELDS (employee_number CHAR()
employee_dob CHAR()
employee_last_name CHAR()
employee_first_name CHAR()
employee_middle_name CHAR()
employee_hire_date CHAR() date_format DATE mask mm/dd/yyyy
)
)
LOCATION (infodat)
);
Table created
然后
SQL> INSERT INTO emp (emp_no
first_name
middle_initial
last_name
hire_date
dob)
(SELECT employee_number
employee_first_name
substr(employee_middle_name )
employee_last_name
employee_hire_date
to_date(employee_dobmonth dd yyyy)
FROM emp_load);
这样数据就已经LOAD到emp表中了
外部表中的并行访问
a)使用ORACLE_LOADER的并行访问
ORACLE_LOADER访问驱动是把大的数据文件分成小的部分去处理
b)使用ORACLE_DATAPUMP的并行访问
ORACLE_DATAPUMP可以把数据库中的数据导出到外部表对应的多个文件中去
ORACLE_DATAPUMP还可以把多个DUMP文件