Oracle10g新特性——利用外部表解除安裝資料
今天在看Oracle的CONCEPT文件時發現,Oracle的外部表也可以用來解除安裝資料了。
從10.2中開始,Oracle增加了外部表的一個新的訪問驅動:ORACLE_DATAPUMP。而再次之前,只有一個預設的驅動ORACLE_LOADER。
使用ORACLE_DATAPUMP驅動,帶來的一個優點是,可以利用外部表將資料庫中的資料解除安裝到磁碟檔案中,而這是10.1及以前版本所無法做到的。
下面看一個最簡單的例子:
SQL> CREATE TABLE T_EXTERNAL
2 (
3 ID,
4 NAME
5 )
6 ORGANIZATION EXTERNAL
7 (
8 TYPE ORACLE_DATAPUMP
9 DEFAULT DIRECTORY D_OUTPUT
10 LOCATION('TEST.DMP')
11 )
12 AS SELECT ROWNUM RN, TNAME
13 FROM TAB;
表已建立。
在這張外部表建立的同時,在D_OUTPUT所指向的作業系統目錄下,生成了一個TEST.DMP二進位制檔案。
顯示這個二進位制檔案中的可顯示字元:
$ strings TEST.DMP
IBMPC/WIN_NT-8.1.0
ZHS16GBK
LBB EMB GHC JWD SD EBE WMF DDG JG SJH SRH JGK CL EGM BJM RAP RLP RP KR PAR MS MRS JLS CET HLT
10.02.00.01.00
T
T_LOG<
TEST_LOB<
T_COMPRESS<
T_TEMP2<
T_RECORD<
T_SESSION_STAT<
T_TEMP<
T_NO_EXISTS_BEFORE<
T_CHAR<
SYS_EXPORT_SCHEMA_01<
T_EXTERNAL<
T_LOAD_SPACE<
T_LEVEL<
T_LEVEL1<
CHAINED_ROWS<
T_TREE
這個二進位制檔案可以用於在其他資料庫中建立外部表:
SQL> CREATE TABLE T_EXTERNAL
2 (
3 ID NUMBER,
4 NAME VARCHAR2(30)
5 )
6 ORGANIZATION EXTERNAL
7 (
8 TYPE ORACLE_DATAPUMP
9 DEFAULT DIRECTORY D_OUTPUT
10 LOCATION('TEST.DMP')
11 );
表已建立。
SQL> SELECT * FROM T_EXTERNAL;
ID NAME
---------- ------------------------------
1 T_LOG
2 TEST_LOB
3 T_COMPRESS
4 T_TEMP2
5 T_RECORD
6 T_SESSION_STAT
7 T_TEMP
8 T
9 T_NO_EXISTS_BEFORE
10 T_CHAR
11 SYS_EXPORT_SCHEMA_01
12 T_EXTERNAL
13 T_LOAD_SPACE
14 T_LEVEL
15 T_LEVEL1
16 CHAINED_ROWS
17 T_TREE
已選擇17行。
唯一可惜的是Oracle只能將資料寫為二進位制格式,因此可以考慮使用這種方法進行資料遷移或釋出。不過想利用這種方法來生成文字報表也是行不通的。
最後提一下,外部表是隻讀表,可以利用外部表解除安裝資料,不過必須在建表時完成,一旦表建立成功,外部表就變成不可修改了。
SQL> INSERT INTO T_EXTERNAL VALUES (100, 'A');
INSERT INTO T_EXTERNAL VALUES (100, 'A')
*
第 1 行出現錯誤:
ORA-30657: 操作在外部組織表上不受支援
SQL> DROP TABLE T_EXTERNAL;
表已刪除。
SQL> CREATE TABLE T_EXTERNAL
2 (
3 ID NUMBER,
4 NAME VARCHAR2(30)
5 )
6 ORGANIZATION EXTERNAL
7 (
8 TYPE ORACLE_DATAPUMP
9 DEFAULT DIRECTORY D_OUTPUT
10 LOCATION('TEST1.DMP')
11 );
表已建立。
SQL> INSERT INTO T_EXTERNAL VALUES (1, 'A');
INSERT INTO T_EXTERNAL VALUES (1, 'A')
*
第 1 行出現錯誤:
ORA-30657: 操作在外部組織表上不受支援
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-426858/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用oracle外部表進行資料泵解除安裝資料Oracle
- Oracle10g新特性——利用RMAN遷移表空間Oracle
- 解除安裝oracle10gOracle
- Oracle10g新特性——利用RMAN遷移表空間(二)Oracle
- Oracle10g新特性——利用RMAN遷移表空間(一)Oracle
- oracle10g GC agent安裝與解除安裝OracleGC
- 解除安裝oracle資料庫Oracle資料庫
- 使用Tom解除安裝指令碼解除安裝表資料到平文字檔案指令碼
- 【實驗】使用Tom解除安裝指令碼解除安裝表資料到平文字檔案指令碼
- 達夢8資料庫安裝和解除安裝資料庫
- oracle10G新特性之資料泵匯出/匯入Oracle
- 10G新特性筆記之安裝新特性筆記
- DB2資料庫的解除安裝DB2資料庫
- ORACLE 單例項完全解除安裝資料庫Oracle單例資料庫
- 外部表載入資料(ExternalTables)
- Oracle10g新特性:臨時表空間組(temporary tablespace group)Oracle
- 如何徹底的解除安裝sql server資料庫SQLServer資料庫
- linux下如何完全解除安裝mysql資料庫LinuxMySql資料庫
- unloader將資料解除安裝為平面檔案
- Windows環境下達夢資料庫安裝及解除安裝手冊Windows資料庫
- 【移動資料】External Table 外部表
- docker安裝及解除安裝Docker
- Ubuntu解除安裝和安裝Ubuntu
- Oracle 安裝與解除安裝Oracle
- solaris mysql 安裝 解除安裝MySql
- JDK安裝和解除安裝JDK
- (轉)oracle10g新特性之 flashbackOracle
- oracle10g新特性——物化檢視Oracle
- 解除安裝RAC
- 解除安裝CRS
- JDK 解除安裝JDK
- oracle解除安裝Oracle
- ORACLE 解除安裝Oracle
- docker 解除安裝Docker
- oracle10G新特性之臨時表空間組的應用Oracle
- Linux環境下達夢資料庫安裝及解除安裝手冊Linux資料庫
- Linux系統徹底解除安裝MySQL資料庫LinuxMySql資料庫
- 查詢語句系列—掛載和解除安裝資料