标签:io os 使用 sp 文件 数据 on 2014 log
利用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         ,
)
标签:io os 使用 sp 文件 数据 on 2014 log
原文地址:http://www.cnblogs.com/mindong/p/4122925.html