蔡香满屋
站在牛顿头上吃苹果

由于从老系统导数据是通过excel表的方式导出的,里面数据有几十万条数据,如果只是简单通过复制黏贴的方式复制到数据库中,那么这个过程将会非常耗时和繁琐的。于是就去研究了下sqlloader如何使用,经过研究后发现这个方法非常管用,就记录下来供大家参考参考

第一步:整理Excel表格的数据如下:

excel表格的数据列分别对应数据库表的字段(注意:顺序一定要严格按照数据库字段的顺序)如:xs_id,xnxq_id,kc_id,cjlx,jxrw_id,kslc_id,zpcj,zzcj,jd,cjxs_id,cjbzdm,cjsm,bz,cjr,cjsj,zhxgr,zhxgsj

数据库表设计如下:

 第二步:编写控制文件,先通过鼠标右键新建一个txt记事本,然后再修改类型为ctl文件,如命名为:input.ctl

里面内容如下:其中

 infile  --告诉sqlldr要加载的数据就包含在控制文件本身

E:\sixscore.csv表示将第一步中的excel表格中数据转换为csv文件后存放的位置
into table T_CJGL_XSHZCJ_TMP --加载到哪个表
nullcols(xs_id,xnxq_id,cjlx,kc_id,jxrw_id,kslc_id,zpcj,zzcj,jd,cjxs_id,cjbzdm,cjsm,bz,cjr,cjsj,zhxgr,zhxgsj) --所要加载的列
terminated by ','表示用逗号,
使用TRAILING NULLCOLS。这样,如果输入记录中不存在某一列的数据,sqlldr就会为该列绑定一个null值。

具体代码内容如下:
load data
infile 'E:\sixscore.csv' 
insert into table T_CJGL_XSHZCJ_TMP fields terminated by ','
trailing nullcols(xs_id,xnxq_id,cjlx,kc_id,jxrw_id,kslc_id,zpcj,zzcj,jd,cjxs_id,cjbzdm,cjsm,bz,cjr,cjsj,zhxgr,zhxgsj)

  第三步:将xls文件转换成.csv文件,步骤如下:

1.点击文件,另存为

2.选择文件类型为.csv

注意:如果是多工作簿要先拆分出来,不然不能由.xsl格式转换成.csv格式:

 

将input.ctl和.csv文件同时放在E盘如:

 

3.存放在自己指定的位置如E盘即可。

第四:打开win+R输入cmd,然后输入:sqlldr userid=tzjw_hxsj/tzjw_hxsj@55.192.96.100/orcl control=e:\input.ctl

点击回车即可看到就表示成功了

 

 -------------------------------------

sqlldr导入的四种加载方式:

APPEND :原先的表有数据 就加在后面 
INSERT:装载空表 如果原先的表有数据 sqlloader会停止 默认值 
REPLACE :原先的表有数据 原先的数据会全部删除 
TRUNCATE :指定的内容和replace的相同 会用truncate语句删除现存数据

posted on 2019-05-22 11:51  蔡香满屋  阅读(916)  评论(0)    收藏  举报