使用sqlldr导入.csv文件数据到oracle相关配置 亲测可用

  • Post author:
  • Post category:其他


一、创建一个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

打个广告:最近发现几个不错的影视网站感兴趣的可以看看

策驰影院



小小电影院

,全部都是无广告免费电影



版权声明:本文为qq_16091839原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。