ORACLE_LOADER外部表簡單案例
Oracle的外部表有兩種DRIVER,一種是基於SQLLOADER,另一種是基於DATA PUMP。
本來一直以為ORACLE_LOADER外部表和SQLLDR的差別不大,沒想到實現一個具體需求的時候才發現,二者還是區別挺大的。
這裡給出一個ORACLE_LOAD型別外部表的最簡單的例子,表的建立語句如下:
SQL> CREATE TABLE T_ORACLE_LOAD
2 (ID NUMBER,
3 NAME VARCHAR2(80),
4 DIRECTORY VARCHAR2(25),
5 FULL_NAME VARCHAR2(100)
6 )
7 ORGANIZATION EXTERNAL
8 (TYPE ORACLE_LOADER
9 DEFAULT DIRECTORY D_TEMP
10 ACCESS PARAMETERS
11 (RECORDS DELIMITED BY NEWLINE
12 FIELDS TERMINATED BY ','
13 (ID CHAR,
14 DIRECTORY CHAR,
15 NAME CHAR )
16 COLUMN TRANSFORMS
17 (FULL_NAME FROM CONCAT(DIRECTORY, NAME)))
18 LOCATION ('DATA.DAT'));
表已建立。
資料檔案格式如下:
1,d:\study\yangtk\,2006年總結.doc
2,d:\study\yangtk\,2007Oracle開發者大會(一).doc
3,d:\study\yangtk\,2007Oracle開發者大會(二).doc
4,d:\study\yangtk\,2007年總結.doc
.
.
.
74,d:\study\yangtk\others\,問題診斷和PLSQL方面.doc
外部表的很多方面都與SQLLDR裝載有所區別,比如反斜線’\’的處理,在SQLLDR中只需要第一個作為ESCAPE字元,連續兩個\\就可以了,而外部表中並不支援這種方式。
對於外部表載入NUMBER型別,也要使用CHAR方式,嘗試使用ORACLE_NUMBER、INTEGER以及INTEGER EXTERNAL都不能正確的識別,看來這些型別更適用於ORACLE_DATAPUMP型別的裝載,資料格式都是Oracle內部儲存格式,或者數值固有的格式,而不是常見的ASCII格式。
此外LOB型別的載入也有很大的區別,這裡例子並沒有展示。SQLLDR是透過檔案路徑的方式,而外部表適用的是DIRECTORY的方式。
表建立成功後,透過SELECT即可實現載入:
SQL> SELECT * FROM T_ORACLE_LOAD;
ID NAME
DIRECTORY FULL_NAME
-- ------------------------------ ------------------ -----------------------------
1 2006年總結.doc
d:\study\yangtk\ d:\study\yangtk\2006年總結.doc
2 2007Oracle開發者大會(一).doc d:\study\yangtk\ d:\study\yangtk\2007Oracle開發者大會(一).doc
3 2007Oracle開發者大會(二).doc d:\study\yangtk\ d:\study\yangtk\2007Oracle開發者大會(二).doc
4 2007年總結.doc d:\study\yangtk\
d:\study\yangtk\2007年總結.doc
.
.
.
74 問題診斷和PLSQL方面.doc d:\study\yangtk\ d:\study\yangtk\問題診斷和PLSQL方面.doc
已選擇74行。
最後檢查載入日誌是否存在錯誤:
日誌檔案開啟於 08/09/11 12:25:56
表
T_ORACLE_LOAD 的欄位定義
記錄格式 DELIMITED BY NEWLINE
檔案中的資料與該平臺的 endianness 格式相同
接受帶有空欄位的行
資料來源中的欄位:
ID CHAR (255)
由 "," 終止
像 SQL 載入程式一樣修剪空白
DIRECTORY CHAR (255)
由 "," 終止
像 SQL 載入程式一樣修剪空白
NAME CHAR (255)
由 "," 終止
像 SQL 載入程式一樣修剪空白
列轉換
FULL_NAME
設定為以下的串聯
欄位 DIRECTORY
欄位 NAME
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-704537/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 外部表簡單總結
- oracle_datapump建立外部表案例Oracle
- Bootstrap 4 表單案例boot
- 網易雲簡單案例
- Oracle外部表Oracle
- Oracle 外部表Oracle
- 表單Form簡介——表單按鈕ORM
- drools的簡單入門案例
- greenplum 簡單sql優化案例SQL優化
- MapReduce應用案例--簡單排序排序
- Velocity案例(簡單的Hello)
- 【轉】Oracle 外部表Oracle
- MapReduce應用案例--單表關聯
- 簡單實現跑馬燈案例
- Java簡單迴圈語句案例Java
- 一個簡單的MVP模式案例MVP模式
- 一個簡單的sql稽核案例SQL
- css引入外部css檔案的方式簡單介紹CSS
- oracle 外部表 external tableOracle
- Oracle外部表 External TableOracle
- 外部表筆記-datapump筆記
- Oracle外部表學習Oracle
- 介紹oracle外部表Oracle
- oracle sqlldr 與 外部表OracleSQL
- Eclipse下匯入外部jar包的最簡單方法EclipseJAR
- Redis安裝與使用之簡單案例Redis
- 簡單的路徑規劃案例分享
- RSA加密演算法的簡單案例加密演算法
- JavaWeb使用Struts2的簡單案例JavaWeb
- PLSQL訪問網頁簡單案例(二)SQL網頁
- PLSQL訪問網頁簡單案例(一)SQL網頁
- ES6簡單總結(搭配簡單的講解和小案例)
- Redshift__在一個外部架構下建立外部表後,其他外部架構也自動生成了一樣的外部表架構
- 表單驗證教程簡介
- 情況最簡單下的爬蟲案例爬蟲
- 使用Java實現簡單的鬥地主案例Java
- 結合案例深入解析簡單工廠模式模式
- Linux SNAT/DNAT簡單理解與案例分析。Linux