SQL LOADER的使用方法

andyann發表於2011-09-01
SQL*LOADER

SQL*LOADER是ORACLE的資料載入工具,通常用來將作業系統檔案(資料)遷移到ORACLE資料庫中。
SQL*LOADER是大型資料倉儲選擇使用的載入方法,因為它提供了最快速的途徑(DIRECT,PARALLEL)。

執行sqlldr命令可以看到相關幫助資訊。

使用說明:
sqlldr userid=scott/scott@oradb control='D:/input.ctl' log='D:/input.log'

input.ctl內容:

load data                          --控制檔案標識。

infile *                                --當為*時匯入的資料在控制檔案中,BEGINDATA後面為匯入的資料。
infile 'D:/data.csv'            --要輸入的資料檔名稱(CSV格式資料)
badfile 'D:/data.bad'        --BAD檔案路徑

append|insert|replace|truncate    --append在表後追加,insert插入空表,replace替代原有內容。
into table tableName                      --要匯入的資料庫表名稱  

fields terminated by ","                    --指定欄位分隔符為,,csv檔案用。
fields terminated by whitespace  --指定欄位分隔符為tab,txt檔案用。
fields terminated by X'09'               --以十六進位制格式 '09' 表示的。
optionally enclosed by ""                --段選擇性地封閉匯入為選擇的後面為空。  
trailing nullcols                                --表的欄位沒有對應的值時允許為空。

(col1 terminated by ",")                   --無宣告fields terminated by時,列可單獨定義。
(col1,col2,col3 FILLER)                  --定義列,FILLER標識這列不會裝載。

(col_1 [interger external])               --定義列整數型
(col_1 [date "dd-mon-yy"])             --定義列日期型
(col_1 [char])                                    --第一列字元型

(col_1 position(1:2))                       --指定位置。
(col_1 position(*:2))                        --欄位的開始位置在前一欄位的結束位置。
(col_1 position(*:2) char(8))          --指定位置以及欄位的型別。
(col_1 "upper(:col_1)")                   --欄位使用函式。

begindata                                          --對應開始的INFILE * 要匯入的內容就在control檔案裡。
10,sql,what                                        --begindata後的數值的前面不能有空格  
20,lg,show
......

註釋:
APPEND        原先的表有資料,加在後面。
INSERT         裝載空表,如果原先的表有資料,sqlloader會停止(預設值)。
REPLACE     原先的表有資料,原先的資料會全部刪除。
TRUNCATE  指定的內容和replace的相同,會用truncate語句刪除現存資料
 

Sqlldr的函式關鍵字說明: 
Userid     --oracle使用者名稱  userid = username/password@serviceName 
Control    --控制檔名稱  control = 'c:/sqlload.sld' 
Log          --日誌檔名稱  log = 'c:/sqlload.log' 
Bad          --損壞檔名稱  bad = 'c:/sqlload.bad'
Data         --資料檔名    data = 'd:/data.csv' 
Discard    --discard file name 
Discardmax --number of discards to allow(預設全部) 
Skip          --匯入時跳過的記錄行數(預設0) 
Load        --匯入時匯入的記錄行數(預設全部) 
Errors      --允許錯誤的記錄行數(預設50)  

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24070945/viewspace-706442/,如需轉載,請註明出處,否則將追究法律責任。

相關文章