将一个数据库中的数据导入另一个数据库(DB2)

将一个数据库中的数据导入另一个数据库(DB2)

我这里举得例子是使用的DB2数据库,其他数据库思路也是这样啦!

1、从db2 数据库中将表中的数据导入本地的excel中

export to d:\mytest.xls of del modified by nochardel coldel0x09 select * from IOUT_BUSI_YWDJMX_TEMP

2、在需要导入的数据库建立一个临时表

--创建临时表
CREATE TABLE NBADV.l_hzcitywa
(

fhcode varchar(20),
dhcode varchar(20),
away DECIMAL(19, 4)

)
DATA CAPTURE NONE
IN [email protected]

ALTER TABLE NBADV.l_hzcitywa
LOCKSIZE ROW
APPEND OFF
NOT [email protected]

3、将excel另存为csv格式的文件,导入到数据库的临时表中

--将数据导入临时表
import from "D:\hz.csv" OF DEL INSERT INTO [email protected]

4、对数据进行处理

--查出重复的数据
select distinct a.DELI_UNIT_CD,c.fhcode,a.ARRI_UNIT_CD,c.dhcode,count(c.away) from ST_I_STD_MILEAGE a
inner join nbadv.l_hzcitywa c on a.DELI_CITY_NM=c.fhcode and a.ARRI_CITY_NM=c.dhcode
group by a.DELI_UNIT_CD,c.fhcode,a.ARRI_UNIT_CD,c.dhcode
having count(*)>1

--删除掉重复的数据
delete from nbadv.l_hzcitywa where dhcode in (‘北京‘,‘东莞‘,‘拉萨‘,‘天水‘,‘酒泉‘,‘平凉‘,‘庆阳‘,‘铜川‘,‘咸阳‘,‘烟台‘)@

5、处理后的数据通过db2存储过程将所需要的数据更新到第二个数据库的表中,这里关键是找到临时表与需要更新数据的表中的关联关系;

--创建存储过程,更新合同里程
drop procedure [email protected]

create procedure L_getcityway(
in v_personId    int
)
language sql
dynamic result sets 0

begin
declare sqlcode int;
declare sqlstate char(5);
declare v_errcode int default 0;

--更新合同里程
merge into ST_I_TRANS_MILEAGE a
using (
select distinct a.DELI_UNIT_CD,c.fhcode,a.ARRI_UNIT_CD,c.dhcode,c.away from ST_I_STD_MILEAGE a
inner join nbadv.l_hzcitywa c on a.DELI_CITY_NM=c.fhcode and a.ARRI_CITY_NM=c.dhcode and c.fhcode= ‘渭南‘
)b
on a.DELI_STORE_CD=b.DELI_UNIT_CD and a.ARRI_STORE_CD=b.ARRI_UNIT_CD
when matched then
update set a.ACTUAL_MILEAGE=b.away;

--计算差异
update ST_I_TRANS_MILEAGE set DIFFERENCE=(ACTUAL_MILEAGE-STD_MILEAGE)*100.000000/STD_MILEAGE where DELI_STORE_CD=2061000101 and STD_MILEAGE is not null and STD_MILEAGE<>0;

--更新备注
update ST_I_TRANS_MILEAGE set REMARK=‘无‘ where DIFFERENCE>10 and DELI_STORE_CD in (‘2061000101‘,‘2061000102‘,‘2061000103‘,‘2061000104‘,‘2061000105‘);

return v_errcode;

end@

到此,已经实现从第一个数据库的表中的数据更新到第二个数据库中了;

时间: 2024-12-26 09:24:05

将一个数据库中的数据导入另一个数据库(DB2)的相关文章

把一个数据库中的数据导入另一个数据库中

use master go -- ============================================= -- Basic Create Database Template -- ============================================= IF EXISTS (SELECT * FROM master..sysdatabases WHERE name = N'lbNorthwind') DROP DATABASE lbNorthwind GO

Java实现Excel导入数据库,数据库中的数据导入到Excel

实现的功能: Java实现Excel导入数据库,如果存在就更新 数据库中的数据导入到Excel 1.添加jxl.jar mysql-connector-java.1.7-bin.jar包到项目的lib目录下­ 2.Excel文件目录:D://book.xls 3.数据库名:javenforexcel 4.表名:stu 5.编写类:连接mysql的字符串方法.插入的方法.实体类­­ 表结构如下 : 连接数据库的工具类 package com.javen.db; import java.sql.Co

Java实现Excel导入数据库,数据库中的数据导入到Excel。。转载

自学资料总结 实现的功能: Java实现Excel导入数据库,如果存在就更新 数据库中的数据导入到Excel 1.添加jxl.jar mysql-connector-java.1.7-bin.jar包到项目的lib目录下­ 2.Excel文件目录:D://book.xls 3.数据库名:javenforexcel 4.表名:stu 5.编写类:连接mysql的字符串方法.插入的方法.实体类­­ 表结构如下 : 连接数据库的工具类 package com.javen.db; import java

使用sqoop将MySQL数据库中的数据导入Hbase

使用sqoop将MySQL数据库中的数据导入Hbase 前提:安装好 sqoop.hbase. 下载jbdc驱动:mysql-connector-java-5.1.10.jar 将 mysql-connector-java-5.1.10.jar 拷贝到 /usr/lib/sqoop/lib/ 下 MySQL导入HBase命令: sqoop import --connect jdbc:mysql://10.10.97.116:3306/rsearch --table researchers --h

Excel中的数据导入到SqlServer数据库中

从SqlServer2008才开始支持导出表结构的和表中的数据,而SqlServer2008以前的数据库只支持导出表结构,有些时候我们可能需要把2008以前的数据库中的数据导出来,这个时候我们可以使用折中的方法,先把数据库导出到Excel中,再把Excel中的数据导入到数据库中(如果两台数据库服务器之间可以互通的话,可以直接建立远程链接进行数据传输,不用如此麻烦), 将SqlServer中的数据导出到Excel中比较简单,这里不再贴图,下面是把Excel中的数据导入到SqlServer中步骤:

(solr系列:四)将mysql数据库中的数据导入到solr中

在前面的博文中,已完成了在tomcat中对solr的部署,为solr添加了一个自定义的core,并且引入了ik分词器. 那么该如何将本地的mysql的数据导入到solr中呢? 准备工作: 1.mysql数据源:myuser库中的user表(8条数据) /* Navicat MySQL Data Transfer Source Server         : localhost Source Server Version : 50521 Source Host           : local

java实现数据库中的数据导入到Excel

1.添加 mysql-connector-java.1.7-bin.jar和jxl.jar包到项目的lib目录下- 2.数据库名为wiki 3.表名为stu 4.Excel文件目录:d://book.xls 5.编写类:连接mysql的字符串方法.插入的方法.实体类-- 表结构如下 : 链接数据库 表的实体类 将数据库的数据导入到Excel 效果显示

用logstash2.2.2把mysql数据库中的数据导入到elasticsearch

1.解压logstash2.2.2后台,进入到etc目录下,创建logstash-simple.conf,添加如下配置,根据自己的环境修改 input { jdbc { jdbc_driver_library => "/usr/local/elasticsearch-2.2.1/mysqldriver/mysql-connector-java-5.1.30-bin.jar" jdbc_driver_class => "com.mysql.jdbc.Driver&q

pycharm中sqllit中数据库中的数据导入!

目前我知道的有两种方法,一种是文件导入,一种是代码导入,具体操作如下:步骤一.先找到自己的表名步骤二.右击你的表名出现如下的列表,其中的两项就是我们导入书库的种种方法: 第一个是从控制台导入,第二个是从sql文件导入1.打开从控制台导入,把你的sql语句填入控制台里面,然后点击绿色的三角形运行就ok了,2.打开从文件导入,找到你的sql文件点击确定,如果没什么问题就点击ok就行了 原文地址:http://blog.51cto.com/853056088/2321915