ITPUX技术网

交流 . 资讯 . 分享
Make progress together!
Linux操作系统下Oracle11g R2 RAC 安装配置教程
Oracle数据库培训-备份恢复-性能优化-集群容灾
Oracle数据库DBA高级工程师培训视频

sqldr

内容发布:司马辽太杰| 发布时间:2017-5-11 11:19:13
sqlldr userid="smb/czty_smb@zsms" control="t_user_mobile_list.ctl" data="t_user_mobile_list.txt" log="_user_mobile-list.log"


sqlldr中主键自增长解决方法:需要将自增长的字段放在最后一行

load data
infile *
Append into table t_module_status
FIELDS TERMINATED BY '|' ----空格 BY WHITESPACE
TRAILING NULLCOLS   
(  
module_id,
time_id date'yyyy-mm-dd hh24:mi:ss',
module_status,
id "SEQ_MODULE_STATUS.nextval"  
)




1. 首先需要ctl文件
ctl文件格式如下:
load data            
infile *
Append into table t_user_mobile_list ---插入的表名称
FIELDS TERMINATED BY ','---文件以’,’分割 FIELDS TERMINATED BY WHITESPACE 空格分隔
TRAILING NULLCOLS    --表的字段没有对应的值时允许为空
( subid,
smbms,
productcat,
sub_type,
create_time date "YYYY-MM-DD HH24:MI:SS", ----data类型字段需要制定格式
part,
submit_flag,  
name )
如果对应的字段为空,则可以不在对应列中出现!
2. 执行Sqlldr命令
sqlldr userid="smb/czty_smb@zsms" control="t_user_mobile_list.ctl" data="t_user_mobile_list.txt" log="_user_mobile-list.log"


sqlldr userid="smb/czty_smb@zsms"   -----指定数据库
control="t_user_mobile_list.ctl"   ----第一步生产的ctl文件
data="t_user_mobile_list.txt"  -----需要导入的txt文件
log=”t_user_mobile-list.log“     -------将信息写到日志中
注意:
1. 执行该命令时,要将导入的文件和crl文件在同一个目录下
2. Sqlldr一次只能导入500w行,如果导入文件超过500w行,先将该文件分割成多个文件再执行。分割命令:split  文件名 -l 3000000  fee(前缀)--将该文件按300w行分成N个文件

Shell脚本执行
file:///C:/Users/ADMINI~1/AppData/Local/Temp/enhtmlclip/Image(4).png

Ctl文件
file:///C:/Users/ADMINI~1/AppData/Local/Temp/enhtmlclip/Image(5).png
文件







file:///C:/Users/ADMINI~1/AppData/Local/Temp/enhtmlclip/Image(6).png
来源: http://9274590.blog.51cto.com/9264590/1844939




上一篇:Sqlplus生产awr报告方法
回复

使用道具 举报

1框架
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表