oracle_datapump建立外部表案例
一、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.
--將上個案例生成的countries_ext.dmp複製一份至遠端機器gc2上
[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
[oracle@gc1 dir]$ scp countries_ext.dmp gc2:/home/oracle/dir
oracle@gc2's password:
countries_ext.dmp
--檢查複製是否成功
[oracle@gc2 dir]$ pwd
/home/oracle/dir
[oracle@gc2 dir]$ ls
countries_ext.dmp
--使用datapump建立外部表,且資料來源於外部檔案dmp
SQL> CREATE TABLE scott.countries_ext
2 (COUNTRY_ID NUMBER,
3 COUNTRY_NAME VARCHAR2(30),
4 COUNTRY_REIGION VARCHAR2(30)
5 )
6 ORGANIZATION EXTERNAL
7 (
8 TYPE ORACLE_DATAPUMP
9 DEFAULT DIRECTORY dir
10 LOCATION ('countries_ext.dmp')
11 );
Table created.
SQL> select * from scott.countries_ext;
COUNTRY_ID COUNTRY_NAME COUNTRY_REIGION
---------- ------------------------------ ------------------------------
1 AMERICA america
2 china zhuzhou
3 JAPAN dongjing
由此可見,利用外部檔案,使用datapump方式建立外部表可行。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/21251711/viewspace-1150577/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 利用ORACLE_DATAPUMP為驅動建立外部表Oracle
- Redshift建立外部架構external schema和外部表external table架構
- ORACLE_LOADER外部表簡單案例Oracle
- 使用SQL*Loader建立外部表之二SQL
- 使用SQL*Loader建立外部表之一SQL
- Redshift__在一個外部架構下建立外部表後,其他外部架構也自動生成了一樣的外部表架構
- oracle外部表建立以及收集統計資訊以及臨時表Oracle
- Oracle外部表Oracle
- Oracle 外部表Oracle
- ORACLE_DATAPUMP & External TableOracle
- mysql幾種表分割槽建立案例MySql
- 【SQLLDR】使用SQL*Loader輔助生成外部表建立語句SQL
- 【轉】Oracle 外部表Oracle
- oracle 外部表 external tableOracle
- Oracle外部表 External TableOracle
- 外部表筆記-datapump筆記
- Oracle外部表學習Oracle
- 介紹oracle外部表Oracle
- oracle sqlldr 與 外部表OracleSQL
- 使用sqlloader控制檔案生成外部表建立語句的一個例子SQL
- sqlldr和oracle_datapump效能比較SQLOracle
- ORACLE學習之外部表Oracle
- 外部表簡單總結
- Hive內部表和外部表的區別Hive
- Postgresql外部表使用 postgres_fdwSQL
- Clickhouse的MySQL外部表,坑貨!MySql
- 外部表載入資料(ExternalTables)
- CUUG 外部表學習筆記筆記
- oracle外部表詳解以及使用Oracle
- GP查詢外部表報錯
- oracle 外部表alert_orcl.oraOracle
- 外部表筆記一loader筆記
- Oracle之外部表警告日誌Oracle
- 測試TOM=SQLLDR生成外部表SQL
- 刪除外部表時遇到的坑
- 【移動資料】External Table 外部表
- PostgreSQL - 外部表、分佈鍵、父子表SQL
- Oracle外部表的管理和應用Oracle