oracle external table

外部表是存儲於數據庫外的一種表,它允許以只讀的形式讀取外部表裏的數據. 你可以像普通表一樣對外部表進行SELECT, SORT, JOIN操作,也可以在外部表上建視圖,同義詞等,但不能有DML操作,不能創建索引。
生成外部表時,會在目錄下自動生成日誌文件。
生成的外部表並不是實際存在,不會佔用存儲空間。

創建外部表
using:CREATE TABLE...ORGANIZATION EXTERNAL
type - 指定外部表的類型。兩個可用類型是ORACLE_LOADER類型和ORACLE_DATAPUMP類型。每種類型的外部表是由它自己的訪問驅動程序所支持。
ORACLE_LOADER:默認,只能從外部表到內部表,數據來源是文本文件
ORACLE_DATAAPUMP:可以從外部表到內部表,也可從內部表到外部表,數據源只能是二進制文件.
default directory: 加載或卸載的默認目錄,指的是directory 對象,而不是物理路徑
location: 數據文件名,格式directory:file direcotry 如果沒有顯式指明,默認 default_directory 


e.g 使用ORACLE_LOADER導入數據文件
在E:/oracle/data目錄下新建 
ex1.txt
1,hello
2,wuhen

ex2.txt
3,hello
4,world

create directory wuhen as 'E:/oracle/data';  --創建目錄對象
grant read,write on drirectory wuhen to wuhen;  --授權

create table ex_t1  --創建外部表
(c1 varchar2( 5),c2 varchar2 (20))     
organization external
(
type oracle_loader  
default directory wuhen   --指定外部表的存放目錄
access parameters (records delimited by newline
                   fields terminated by ','
)
/*
records delimited 讀取記錄,默認by newline,以換行符爲一記錄
fields terminated by ',' 讀取字段,默認 by ',',以逗號爲字段分隔
*/
location('ex1.txt' ,'ex2.txt') --數據文件,在默認目錄下,可有多個文件
);

驗證 
SQL> select * from ex_t1;
C1    C2
----- --------------------
1     hello
2     wuhen
3     hello
4     world

e.g 使用ORACLE_DATAPUMP 導出數據文件

create table ex_t3(c1,c2,c3)  --創建外部表
organization external
(
type oracle_datapump     
default directory wuhen  
ACCESS PARAMETERS (nologfile)
/*
nogfile 不生成日誌文件,此處也可LOGFILE wuhen:ex_t3 指定日誌文件位置,在wuhen目錄對象下生成ex_t3.log
11g 還有 COMPRESSION [ENABLED | DISABLED]指定是否對數據進行壓縮
ENCRYPTION [ENABLED | DISABLED] 指定是否對數據進行加密
*/
location ('ex3.dmp' ))
as                                
select username,user_id,password from dba_users where rownum < 3;

驗證
select * from ex_t3;
C1                                     C2 C3
------------------------------ ---------- ------------------------------
MGMT_VIEW                              57 A9C0D2A4F6B75CBC
SYS                                     0 262FBDE157DFFFA5
發佈了26 篇原創文章 · 獲贊 1 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章