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文件
From:http://tw.wingwit.com/Article/program/Oracle/201311/17336.html