一、datapump建立外部表格,資料來源於內部實體表
--首先建立 scott.countries實體表,用於做實驗
SQL> create table scott.countries(
2 country_id number,
3 country_name varchar2(30),
4 country_reigion varchar2(30)
5 );
Table created.
SQL> insert into scott.countries values(1,'AMERICA','america');
1 row created.
SQL> insert into scott.countries values(2,'china','zhuzhou');
1 row created.
SQL> insert into scott.countries values(3,'JAPAN','dongjing');
1 row created.
SQL> commit;
Commit complete.
--參考官方datapump建立外部表格的案例(其資料來源於內部實體表),如下:
做以下修改後(紅色字型部分內容),建立外部表格
CREATE TABLE scott.countries_ext
ORGANIZATION EXTERNAL
(
TYPE Oracle_DATAPUMP
DEFAULT DIRECTORY dir --產生dmp檔案存放路徑
LOCATION ('countries_ext.dmp') --產生外部檔案的名稱
)
AS SELECT * FROM scott.countries; --資料來源於實體表
--執行以上建立外部表格的語句
SQL> CREATE TABLE scott.countries_ext
2 ORGANIZATION EXTERNAL
3 (
4 TYPE ORACLE_DATAPUMP
5 DEFAULT DIRECTORY dir
6 LOCATION ('countries_ext.dmp')
7 )
8 AS SELECT * FROM scott.countries;
Table created.
SQL> select * from scott.countries_ext;
COUNTRY_ID COUNTRY_NAME COUNTRY_REIGION
---------- ------------------------------ ------------------------------
1 AMERICA america
2 china zhuzhou
3 JAPAN dongjing
由此可見,建立外部實體表成功。
--查看dir外部檔案存放路徑,並檢查是否產生了countries_ext.dmp檔案
SQL> select * from dba_directories;
OWNER DIRECTORY_NAME DIRECTORY_PATH
---------- -------------------- --------------------------------------------------
SYS DATA_PUMP_DIR /u01/app/oracle/product/10.2.0/db_1/rdbms/log/
SYS DIR /home/oracle/dir
[oracle@gc1 dir]$ cd /home/oracle/dir
[oracle@gc1 dir]$ ls
COUNTRIES_EXT_14214.log countries_ext.dmp ldr.ctl ldr.log PROD_MY_12177.log PROD_MY_14213.log PROD_MY_14214.log prod_my.data
二、datapump建立外部表格,資料來源於外部dmp檔案
--gc2機器建立外部表格存放檔案目錄,同gc1
[oracle@gc2 dbs]$ cd /home/oracle
[oracle@gc2 ~]$ mkdir dir
[oracle@gc2 ~]$ cd dir
--資料庫建立對應檔案目錄,並賦予操作許可權給所有使用者
SQL> create directory dir as '/home/oracle/dir';
Directory created.
SQL> grant all on directory dir to public;
Grant succeeded.
更多詳情見請繼續閱讀下一頁的精彩內容:
Oracle 10g成功建立外部表格詳解
oracle_loader類型外部表格
oracle_datapump類型外部表格
Oracle外部表格的一次維護
Oracle的外部表格,或者備份單個表到外部檔案