一.sql loader简介
1.sql loader特点:
oracle自己带了很多的工具可以用来进行数据的迁移、备份和恢复等工作。但是每个工具都有自己的特点。
比如说exp和imp可以对数据库中的数据进行导出和导出的工作,是一种很好的数据库备份和恢复的工具,因此主要用在数据 库的热备份和恢复方面。有着速度快,使用简单,快捷的优点;同时也有一些缺点,比如在不同版本数据库之间的导出、导入的过程之中,总会出现这样或者那样的问题,这个也许是oracle公司自己产品的兼容性的问题吧。
sql loader 工具却没有这方面的问题,它可以把一些以文本格式存放的数据顺利的导入到oracle数据库中,是一种在不同数据库之间进行数据迁移的非常方便而且通用的工具。缺点就速度比较慢,另外对blob等类型的数据就有点麻烦了。
2.sql帮助
二.操作步骤
第一步:
首先需要在oracle里面手动新建表,字段按照业务需求确定。
第二步:
使用sql,将数据导出为CSV格式
export to d:\ygxx.csv of del
select distinct(yg.id),yg.xm,yg.gh,yg.dw_id,yg.bm_id,yg.bz_id ,
yg.zzjg_id,
yg.gwmc,fjxx.sfzh,yg.ygzt,yg.sfyx,fjxx.ygxz,
yg.xb,fjxx.csrq,fjxx.mz,fjxx.cjgzsj,fjxx.JRDLHYSJ,
fjxx.zzmm,fjxx.HSRDT,fjxx.yddh,fjxx.bgdh,fjxx.jg,
gzbd.zwjb,ygqt.zgzyjszgdj,ygqt.zyjnxxdj,ygqt.zgxl,
ygqt.zgxw, xlxw.jssj,xlxw.byxx,xlxw.zymc ,
ygqt.jyxl,ygqt.jyxw ,xlxw.kssj,gzbd.zwjb,xlxw.SFZGXL
from t_rs_ygjbxx yg left join T_RS_YGFJXX fjxx on yg.id = fjxx.id
left join T_RS_GZBDXX gzbd on gzbd.yg_id = yg.id
left join T_RS_XLXWXX xlxw on xlxw.yg_id = yg.id
left join T_RS_YGQTXX ygqt on ygqt.id = yg.id
export to 后面的路径就是生成文件的保存路径,下面的sql是查询出需要导出的数据
第三步:
手动写出控制文件 control.ctl
load data
infile "D:\ygxx.csv"
into table T_RS_RYXX
fields terminated by "," optionally enclosed by '"'
trailing nullcols
(
ID ,
XM ,
GH ,
DW_ID ,
BM_ID ,
BZ_ID ,
ZZJG_ID ,
GWMC ,
SFZH ,
YGZT ,
SFYX ,
YGXZ ,
XB ,
CSRQ DATE "YYYY/MM/DD hh24:mi:ss" ,
MZ ,
CJGZSJ DATE "YYYY/MM/DD" ,
JRDLHYSJ DATE "YYYY/MM/DD" ,
ZZMM ,
HSRDT DATE "YYYY/MM/DD" ,
YDDH ,
BGDH ,
JG ,
ZWJB ,
ZGZYJSZGDJ ,
ZYJNXXDJ ,
ZGXL ,
ZGXW ,
BYSJ DATE "YYYY/MM/DD" ,
BYXX ,
BYZY ,
JYXL ,
JYXW
)
这里注意 日期格式的时候需要指定确切的日期格式,否则会报错
Record 1: Rejected - Error on table T_RS_RYXX, column CJGZSJ.
ORA-01861: literal does not match format string
第四步:
使用cmd导入数据
首先链接数据库
conn admin@admin
然后导入数据
其中参数定义上面有,最好指定log路径,便于查看导入时报错。
如果以上操作没问题,导入数据结束。