外部表讓資料庫像查詢視圖一樣,直接對 OS 上的文字檔(CSV、定寬、ORACLE_DATAPUMP 等格式)執行 SELECT,無需先載入資料庫。特性:
CREATE OR REPLACE DIRECTORY ext_data_dir AS '/data/ext_files'; -- Linux
-- 或
CREATE OR REPLACE DIRECTORY ext_data_dir AS 'D:\ext_files'; -- Windows
三大坑點:
CREATE ANY DIRECTORY 權限者(通常為 DBA)可建立,一般使用者需被授權 READ/WRITE。KUP-04040。CREATE TABLE ext_sales (
sale_date DATE,
product_id NUMBER,
amount NUMBER(10,2)
)
ORGANIZATION EXTERNAL (
TYPE ORACLE_LOADER
DEFAULT DIRECTORY ext_data_dir
ACCESS PARAMETERS (
RECORDS DELIMITED BY NEWLINE
FIELDS TERMINATED BY ','
MISSING FIELD VALUES ARE NULL
(sale_date CHAR(10) DATE_FORMAT DATE MASK "YYYY-MM-DD",
product_id,
amount)
)
LOCATION ('sales_202401.csv')
)
REJECT LIMIT UNLIMITED;
CTAS 導入暫存表。KUP-04021。