oracle_利用ctl文件實現批量導入


  利用oracle控制文件實現大批量數據的入庫操作,效率比sql腳本文件要高很多。

使用ctl控制文件步驟如下:

 

1. 制作ctl文件 test.ctl

load   data 

infile   'd:\test.txt'   --數據文件,數據源文件

append   into   table   table_name --數據文件導入的目標表

Fields terminated by "@_@"   --字段分隔符,建議以特殊字符作為字段分隔符

Optionally enclosed by '"' --定界符

trailing   nullcols   --允許跳過列

(    col1,    col2,    col3,    col4)   ---表中的字段

----以上斜體部分文字請根據實際情況替換

 

 2. 制作數據源文件

文件中只有數據,數據列之間用“@_@”分隔  (可借助命令或者工具導出數據,然后再通過UE編輯)

 

3. 執行ctl文件

命令行cmd下執行 ,cd 至oracle控制文件目錄下,

執行命令:sqlldr oracle/oracle@orcl  control =test.ctl, ERRORS=50000 , LOAD=450000  

 

4. 執行結果

執行結果將會在oracle的控制文件下生成執行的控制文件名稱對應的日志文件(input.log)詳細記錄了操作結果。

 

5. 當加載大量數據時(大約超過10GB),最好抑制日志的產生: 

SQL>ALTER   TABLE   RESULTXT   nologging;

這樣不產生REDO LOG,可以提高效率

---------------------------示例---------------------------------------------

--2014年11月26日 星期三 10時25分12秒  --z_org.ctl
--向表z_org里加載數據
load data
infile 'z_org.txt'--數據文件
badfile 'z_org.bad'
replace into table z_org --替換表 z_org內容
fields terminated by '@_@' --字段分隔符
TRAILING  NULLCOLS ---允許跳過列
(
gather_date  DATE "YYYY-MM-DD",
xaccount        ,
name            ,
sms_frees       ,
freesign        ,
sms_lowamt      ,
sms_lowamx      ,
mp_l_lmt        ,
mp_auths        ,
mpausign        ,
mp_rem_ppl      ,
mpremsig        ,
mp_bal          ,
mpbalsig        ,
cal_limit       ,
cal_auths       ,
cal_auths_flag  ,
cal_bal         ,
cal_bal_flag    ,
cal_remppl      ,
cal_remppl_flag ,
sms_freeyn      ,
bal_mppl        ,
bal_mpplx       ,
bal_l_mppl      ,
daily_rep       ,
product         ,
)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM