oracle sqlldr 總結
1. SQL*LOADER是ORACLE的資料載入工具,通常用來將作業系統檔案遷移到ORACLE資料庫中。
2. 在NT下,SQL*LOADER的命令為SQLLDR,在UNIX下一般為sqlldr/sqlload(在/oracle/product/10.2.0/bin目錄下可以看到存在sqlldr)。
3. 用法: sqlldr 關鍵字 = 值 [,keyword=value,...]
4. 當載入大量資料時,可以抑制日誌的產生:
a) ALTER TABLE RESULTXT nologging;
5. 控制檔案.ctl
load data --1、控制檔案標識
infile 'test.txt' --2、要輸入的資料檔名為test.txt
append into table test --3、向表test中追加記錄
fields terminated by '|+|' TRAILING NULLCOLS --4、欄位終止於空行
(TP_CUSTOMER_ID ,
ECIF_NO ,
TP_SYSTEM_SOURCE_CD) -----定義列對應順序
其中append為資料裝載方式,還有其他選項:
a、insert,為預設方式,在資料裝載開始時要求表為空
b、append,在表中追加新記錄
c、replace,刪除舊記錄(全部的記錄),替換成新裝載的記錄
d、truncate,同上先刪除再新增
6. 範例:
a) Unix + Oracle環境。
b) 在某目錄下準備好test.ctl和test.dat檔案。
c) 執行命令: sqlldr userid=orcl /orcle@10.1.1.11:1521/orcl control=test.ctl data=test.dat log=test.log bad=test.bad;
7. sqlldr用到的主要引數
1) userid -- ORACLE username/password
2) control –控制檔案
3) log –記錄的日誌檔案
4) bad –壞資料檔案,記錄錯誤的未載入資料
5) data –資料檔案,* data引數只能指定一個資料檔案,如果控制檔案也透過infile指定了資料檔案,並且指定多個,則sqlldr在執行時,先載入data引數指定的資料檔案,控制檔案中第一個infile指定的資料檔案被忽略,但後續的infile指定的資料檔案繼續有效
6) discard –丟棄的資料檔案
7) discardmax –允許丟棄資料的最大值 (預設全部)
8) skip --跳過記錄數,從資料檔案中,從第一行開始要計算要跳過的行數 (預設0)
9) load -- Number of logical records to load (預設全部)
10) errors –允許的錯誤記錄數,超過則終止任務(預設50)
11) rows -- Number of rows in conventional path bind array or between direct path data saves(每次提交的記錄數,預設:常規路徑64,直接路徑全部,所以使用直接路徑的話,效率會比普通的好太多太多)
12) bindsize -- Size of conventional path bind array in bytes(每次提交記錄的緩衝區的大小,位元組為單位,預設256000)
13) silent --禁止輸出信息(header,feedback,errors,discards,partitions)
14) direct –使用直通路徑方式匯入(預設FALSE)
如果表中有索引的話,是不能指定direct=TRUE的,除非使用skip_index_maintenance=TRUE,這個就是在匯入的時候忽略索引,所以在資料匯入完畢以後,檢視索引的狀態應該都是無效的,需要重建之,如下SQL:select * from dba_indexes where table_name='?' ;
alter idnex index_name rebuild ;
重新建立索引要比新建索引快。
15) parallel --並行匯入 (預設FALSE,注意:parallel並不是讓一個sqlldr語句起多個程式來載入資料,而是不鎖住載入表,允許別的直接路徑載入.所以要使parallel起作用,應該先將要載入的資料檔案分成多個,用多個sqlldr語句同時載入,如下例:
sqlldr
userid=scott/tiger control=load1.ctl data=data1.txt direct=y
parallel=true & sqlldr userid=scott/tiger control=load2.ctl
data=data2.txt direct=y parallel=true & sqlldr userid=scott/tiger
control=load3.ctl data=data3.txt direct=y parallel=true &)
16) skip_unusable_indexes -- disallow/allow unusable indexes or index partitions(預設FALSE)
17) skip_index_maintenance -- do not maintain indexes, mark affected indexes as unusable(預設FALSE)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27042095/viewspace-732522/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- sqlldr的用法總結SQL
- 用Oracle sqlldr匯入文字檔案TXT 總結OracleSQL
- sqlldr的學習與總結SQL
- 測試oracle sqlldrOracleSQL
- oracle sqlldr匯入OracleSQL
- sqlldr的用法小結SQL
- Oracle SQL Loader(sqlldr)OracleSQL
- oracle sqlldr 與 外部表OracleSQL
- oracle----sqlldr用法(轉)OracleSQL
- Oracle 總結Oracle
- Oracle sqlldr工具功能測試OracleSQL
- oracle sqlldr控制檔案模板OracleSQL
- Oracle特性總結Oracle
- Oracle synonyms總結Oracle
- Oracle session總結OracleSession
- Oracle OCP(55):SQLLDR—CTL檔案OracleSQL
- Oracle OCP(56):SQLLDR-樣例OracleSQL
- Oracle SQL Loader(sqlldr)+ Externale TablesOracleSQL
- oracle體系結構總結Oracle
- Oracle學習總結Oracle
- Oracle rman 命令總結Oracle
- Oracle 調優總結Oracle
- Oracle SET 命令總結Oracle
- oracle hints用法總結Oracle
- ORACLE鎖的總結Oracle
- Oracle調優總結Oracle
- Oracle 函式總結Oracle函式
- Oracle Tuning總結Oracle
- sqlldr和oracle_datapump效能比較SQLOracle
- 使用sqlldr匯入文字資料到oracleSQLOracle
- ORACLE 的載入工具SQLLDR應用OracleSQL
- ORACLE 繫結變數用法總結Oracle變數
- oracle基本命令總結Oracle
- Oracle之Hint使用總結Oracle
- ORACLE臨時表總結Oracle
- Oracle常用函式總結Oracle函式
- Oracle 行列轉換總結Oracle
- oracle自測總結1Oracle