一、创建一个emp. ctl文件,内容具体配置如下
Load data
CHARACTERSET ZHS16GBK –编码
infile ‘C:\Users\47641\Desktop\T_JCSJZX_DBS_JCJG.csv’ –要导入的数据
badfile ‘impemp.bad’
Append
into table T_JCSJZX_DBS_JCJG –要导入到的table
fields terminated by ‘,’
Optionally enclosed by ‘”‘ –导入.csv数据时要加入 因为他的数据格式为“数据”
trailing nullcols –如要导入源文件此列内容为空,在导入到数据库表中,此列内容就是null
(
–filler_10 filler, –忽略第一列,因为导出文件的第一列表示字段顺序
XH,
CYXH,
CJR,
CJSJ “to_date(:CJSJ,’yyyy/mm/dd hh24:mi:ss’)”,
XGR,
XGSJ “to_date(:XGSJ,’yyyy/mm/dd hh24:mi:ss’)”,
ORGID,
SZLBBS
)
二、直接使用windows命令行执行以下语句即可
sqlldr userid=cemis/cemis@127.0.0.1:1521/ORCL control=’C:\Users\47641\Desktop\emp.ctl’ log=’C:\Users\47641\Desktop\log.log’ skip=1 rows=5000 bindsize=5242880 readsize=10485760
对上面命令行参数说明如下,如果想了解更多参数请参考百度
skip=1 –跳过记录数,从数据文件中,从第一行开始要计算要跳过的行数
rows=5000 –常规路径导入时:指绑定数组中的行数;直接路径导入时,指一次从数据文件只读取的行数,该参数同时
受bindsize制约,如果rows*每行实际占用大小超出bindsize最大可用值,则rows自动降低达到bindsize
bindsize=5242880 –为绑定数组指定的最大可用空间,用来存贮一次读取的rows的记录,该值不能太小,至少要放入一条逻辑记录
但设置太大也没什么作用。 每次提交记录的缓冲区的大小(字节为单位,默认256000) 我修改为5M=5242880
readsize=10485760 — 缓冲区大小,默认值:1048576单位字节,最大不超过20m,该参数仅当从数据文件读取时有效,
如果是从近制文件读取数 据,则默认为64k 我修改为10M=10485760