几年前,Thomas Kyte说过这个问题(here):
我最喜欢使用外部表:
尽快加载这个非常大的文件。过去,将脚本设置为并行直接路径加载。协调所述脚本的触发。查看日志文件以确保它们全部完成。拆分输入文件或使用跳过并加载以对文件进行切片。简而言之,对接的痛苦。
现在:
并行直接路径负载变得微不足道。create table ET parallel; create table new_table (...) parallel as select * from ET;
除非这是无效的语法...
如何使用Oracle的外部表执行“并行直接路径加载”?
答案 0 :(得分:5)
外部表的并行功能有些限制。据我所知,你需要有几个文件具有可以并行处理的相同格式(见下文)或具有固定长度格式的单个文件:
CREATE TABLE WORKING_HOURS_EXT
( employee_id NUMBER(8),
project_id VARCHAR2(20),
start_time VARCHAR2(25),
end_time VARCHAR2(25)
)
ORGANIZATION EXTERNAL
(
TYPE ORACLE_LOADER
DEFAULT DIRECTORY loader_data_dir
ACCESS PARAMETERS
(
records delimited by newline
fields terminated by ';'
( employee_id, project_id, start_time, end_time
)
)
LOCATION ('hours01.txt', 'hours02.txt', 'hours03.txt')
)
PARALLEL;
ALTER SESSION ENABLE PARALLEL DML;
MERGE INTO WORKING_HOURS a
USING WORKING_HOURS_EXT b ON (...