使用sql loader把db2表中数据导入到oracle

本文介绍如何使用Oracle SQLLoader工具进行数据迁移,包括创建表、导出CSV文件、编写控制文件及导入数据的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.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路径,便于查看导入时报错。

    如果以上操作没问题,导入数据结束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值