CUUG 外部表學習筆記
oracle 外部表
一、建立外部表以及產生
1.建立一個directory,需要有create any directory許可權
create directory ext as 'D:/';
2.賦予許可權
grant read,write on directory ext to scott;
3.建立外部表
create table ext_emp
organization external
( type oracle_datapump
default directory ext
location ('ext_emp.dmp')
)
as select * from emp;
4.查詢
select * from ext_emp;
5.修改檔案,再次查詢測試
SQL> /
select * from ext_emp
*
第 1 行出現錯誤:
ORA-29913: 執行 ODCIEXTTABLEOPEN 調出時出錯
ORA-29400: 資料外掛錯誤KUP-11010: unable to open at least one dump file for
fetch
二、使用已經產生了pump檔案建立外部表
1,把產生的 dmp dmp檔案複製到其它主機上
2.建立一個directory,需要有create any directory許可權
create directory ext2 as 'C:\app\YanWei\';
3.賦予許可權
grant read,write on directory ext2 to scott;
4.建立外部表
create table emp_ext3
(
empno number(4),
ename varchar2(10),
job varchar2(9),
mgr number(4),
hiredate date,
sal number(7,2),
comm number(7,2),
deptno number(2)
)
organization external
(type oracle_datapump
default directory ext2
location ('1.DMP')
)
如果基表發生變化,如何更新,刪除dmp和外部表,然後匯出建立一遍
三、建立外部表,有三個匯出檔案。
create table ext_emp1
organization external
( type oracle_datapump
default directory ext
location ('ext_emp1.dmp''ext_emp2.dmp','ext_emp3.dmp')
)
as select * from emp;
---------------》外部表引用的dmp和expdp匯出dmp內部格式還是不一樣的,因此不能公用
四、sqlldr引擎的外部表
使用SQLLDR提供外部表的定義並建立外部表
關於SQL*Loader的使用請參照:SQL*Loader使用方法
我們使用SQL*Loader和下面的這個控制檔案來生成外部表的定義
$ cat demo1.ctl
LOADDATA
INFILE*
INTOTABLEDEPT_NEW
FIELDS TERMINATEDBY','
(DEPTNO,DNAME,LOC)
BEGINDATA
10,Sales,Virginia
20,Accounting,Virginia
30,Consulting,Virginia
40,Finance,Virginia
賦予相應的許可權和建立表
SQL>grant create any directory to scott;
SQL>grant drop any directory to scott;
SQL>create table dept_new
2 (deptno number,dname varchar2(20),loc varchar2(25));
執行sqlldr命令
$ sqlldr scott/tiger control=demo1.ctl external_table=generate_only
EXTERNAL_TABLE引數有以下三個值:
NOT_USED:預設值。
EXECUTE:這個值說明SQLLDR不會生成並執行一個SQLINSERT語句;而是會建立一個外部表,且使用一個批次SQL語句來載入。
GENERATE_ONLY:使SQLLDR並不具體載入任何資料,而只是會生成所執行的SQL DDL和DML語句,並放到它建立的日誌檔案中。
注:DIRECT=TRUE覆蓋EXTENAL_TABLE=GENERATE_ONLY。如果指定了DIRECT=TRUE,則會載入資料,而不會生成外部表。
檔案檔案
179,Charles,6835.5,04-JAN-00
180,Winston,3528,24-JAN-98
181,Jean,3417.75,23-FEB-98
182,Martha,2756.25,21-JUN-99
183,Girard,3087,03-FEB-00
184,Nandita,4630.5,27-JAN-96
185,Alexis,4520.25,20-FEB-97
186,Julia,3748.5,24-JUN-98
187,Anthony,3307.5,07-FEB-99
188,Kelly,4189.5,14-JUN-97
189,Jennifer,3969,13-AUG-97
189,ERROR,3969,13-AUGs-9722
189,ERROR,3969S,13-AUG-9722
CREATE TABLE hr.sqlldr
(
"EMPLOYEE_ID" NUMBER(6),
"FIRST_NAME" VARCHAR2(20),
"SALARY" NUMBER(8,2),
"HIRE_DATE" DATE
)
ORGANIZATION external
(
TYPE oracle_loader
DEFAULT DIRECTORY datamove
ACCESS PARAMETERS
(
RECORDS DELIMITED BY NEWLINE CHARACTERSET US7ASCII
LOAD WHEN ("EMPLOYEE_ID" != "188")
BADFILE 'cardata.bad'
DISCARDFILE 'cardata.dsc'
LOGFILE 'cardata.log'
READSIZE 1048576
FIELDS TERMINATED BY "," LDRTRIM
MISSING FIELD VALUES ARE NULL
REJECT ROWS WITH ALL NULL FIELDS
(
"EMPLOYEE_ID" CHAR(255)
TERMINATED BY ",",
"FIRST_NAME" CHAR(255)
TERMINATED BY ",",
"SALARY" CHAR(255)
TERMINATED BY ",",
"HIRE_DATE" CHAR(255)
TERMINATED BY ","
DATE_FORMAT DATE MASK "DD-MON-YY"
)
)
location
(
'cardata.txt'
)
)REJECT LIMIT UNLIMITED
可以追加資料。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/500314/viewspace-1067063/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- CUUG筆記 ORACLE索引學習筆記筆記Oracle索引
- hive學習筆記之三:內部表和外部表Hive筆記
- 外部表筆記-datapump筆記
- Oracle外部表學習Oracle
- temp表學習筆記筆記
- 外部表筆記一loader筆記
- ORACLE學習之外部表Oracle
- Hive學習筆記 3 Hive的資料模型:內部表、分割槽表、外部表、桶表、檢視Hive筆記模型
- 分割槽表學習筆記筆記
- CUUG筆記 儲存技術筆記
- Flutter學習筆記(13)--表單元件Flutter筆記元件
- mysql修改表欄位學習筆記MySql筆記
- MySql 學習筆記四:表的拆分MySql筆記
- Ext學習筆記9-表單筆記
- CUUG筆記--oracle備份和恢復筆記Oracle
- CUUG《Oracle 監聽和TNS配置》- 筆記Oracle筆記
- oracle外部表的測試學習 (轉)Oracle
- numpy的學習筆記\pandas學習筆記筆記
- hive學習筆記之四:分割槽表Hive筆記
- django book2 表單學習筆記Django筆記
- angular學習筆記(二十)-表單驗證Angular筆記
- Symfony2學習筆記之表單筆記
- Ext學習筆記10-表單續筆記
- 表的聯結、運算子學習筆記筆記
- DB2學習筆記 - 表空間DB2筆記
- IT學習筆記筆記
- 學習筆記筆記
- <react學習筆記(9)>表單控制元件React筆記控制元件
- 資料庫學習筆記之查詢表資料庫筆記
- Activiti學習筆記一:建立資料庫表筆記資料庫
- HTML5 學習筆記 表單屬性HTML筆記
- bootstrap學習筆記一 登入水平表單boot筆記
- 學習筆記:InnoDB表和索引結構(二)筆記索引
- 學習筆記:InnoDB表和索引結構(一)筆記索引
- WebGL three.js學習筆記 載入外部模型以及Tween.js動畫WebJS筆記模型動畫
- 【學習筆記】數學筆記
- 《JAVA學習指南》學習筆記Java筆記
- GeoServer學習筆記-2、基本使用(釋出PostGIS表)Server筆記