当前位置:首页 » 操作系统 » db2数据库数据导入

db2数据库数据导入

发布时间: 2023-03-01 03:10:46

1. 怎样快速导入导出DB2数据库

导出数据库命令:
mysqlmp
-u
root
-p
mydb2
>
e:\mydb.sql
把数据库mydb2导出到e盘的mydb.sql
注意:在dos下进入mysql安装的bin目录下,但是不要登陆。

2. 如何将DB2数据导入到SQLSERVER中

1、在SQL Server中,在对应的数据库中点击右键然后选择“任务”菜单下的“生成脚本”,连续点击两个“下一步”
2、在弹出的对话框中,在“选项”下面的框中找到“为服务器版本编写脚本”
3、把SQL Server修改成SQL Server 2000,然后再点击下一步,把表选中,如有存储过程,也需要把存储过程选中,然后点击下一步
4、全选存储过程或者表,然后点击“下一步”,再点击“完成”
5、在新建的查询窗口中生成了所有的SQL语句,把这些语句进行复制,然后在SQL Server 2000中对应数据库的查询分析器中进行执行,就把对应的表结构及存储过程生成了。
6、再用SQL Server 2000中在对应数据库中点击右键,在“所有任务”对应的“导入数据”,输入SQL Server 2005中服务器的名称或者IP地址
7、输入SQL Server 2000中服务器对应的名称或者IP地址,然后默认的选择进入“下一步”,全选所有的表,然后点击两个“下一步“,数据就可以导进来了。

3. db2数据库的导入

db2move newdbname import 即可
因为你db2move export 出来的是ixf,所以包含了表结构。
不过视图,过程等对象是不包含的,你可以使用db2look 导出结构。

4. 如何把 DB2 数据迁移到 oracle 中

数据迁移:
1、在DB2数据库中通过以下表查询出表的结构
SELECT
TABNAME TAB, --表英文名称
COLNAME COL, --列名称
CASE
WHEN TYPENAME='VARCHAR' THEN 'VARCHAR2'
WHEN TYPENAME LIKE 'SMALLINT' OR TYPENAME LIKE 'BIGINT' THEN 'INTEGER'
WHEN TYPENAME ='CHARACTER' THEN 'CHAR'
WHEN TYPENAME='DECFLOAT' OR TYPENAME ='DECIMAL' THEN 'NUMBER'
ELSE TYPENAME
END TY
, --数据类型
LENGTH LEN , --列长度
scale S, --精度
CASE
WHEN NULLS='N' THEN '否'
WHEN NULLS='Y' THEN '是'
END N --是否为空
--TY||'('||LEN||')'
FROM
SYSCAT.COLUMNS S
WHERE
LEFT( TABSCHEMA, 3 ) <> 'SYS'
/* and s.SCALE <>0*/
ORDER BY
S.TABNAME,
S.COLNO

2、根据表的结构在oracle数据库中建表(脚本见《create_tab_onOracle.sql》)

3、通过编写java程序把数据从DB2导入到oracle数据库中(以下代码思想仅供参考)
3.1、 导入db2jcc_license_cu.jar 、db2jcc.jar 、ojdbc14.jar 三个jar包即可
3.2、 编写三个工具类

此类链接DB2数据库工具类
package com.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConnectionDB2 {
private static final String URL="jdbc:db2://192.168.0.98:50000/sem"; //DB2数据库url
private static final String USER="db2admin"; //DB2数据库账号
private static final String PASSWORD="dnhc9988"; //DB2数据库密码
static{
try {
Class.forName("com.ibm.db2.jcc.DB2Driver").newInstance(); //利用反射注册驱动
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}

public Connection getConnection(){
Connection conn=null;
try {
conn=DriverManager.getConnection(URL, USER, PASSWORD);
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
}

此类链接oracle数据库工具类
package com.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConnectionDB2 {
private static final String URL="jdbc:db2://192.168.0.98:50000/sem"; //DB2数据库url
private static final String USER="db2admin"; //DB2数据库账号
private static final String PASSWORD="dnhc9988"; //DB2数据库密码
static{
try {
Class.forName("com.ibm.db2.jcc.DB2Driver").newInstance(); //利用反射注册驱动
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}

public Connection getConnection(){
Connection conn=null;
try {
conn=DriverManager.getConnection(URL, USER, PASSWORD);
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
}

此类用来关闭数据库连接工具类
package com.util;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class CloseFunction {
//关闭连接方法,释放资源
public static void closeConnection(Connection conn){
if (conn !=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}

//关闭执行sql,释放资源
public static void closeExecuteSQL(Statement preparedStatement){
if (preparedStatement !=null){
try {
preparedStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}

//关闭查询SQL结果,释放资源
public static void closeResultSet(ResultSet resultSet){
if(resultSet !=null){
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}

关键在此类:需要从DB2数据库查询语句放在db2SQL变量中,往oracle插入数据的语句放在oracleSQL变量中。注意,查询和插入的语句中字段顺序要一致,在while循环里要对日期时间处理(用setDate),然后执行junit测试类就可以了。
package com.;
import java.security.interfaces.RSAKey;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.junit.Test;
import com.util.CloseFunction;
import com.util.ConnectionDB2;
import com.util.ConnectionOracle;

public class FromDB2ToOracle {
@Test
public void test1() throws SQLException{
long startTime=System.currentTimeMillis(); //记录开始时间
Connection connDB2=null; //链接DB2数据库
Connection connOracle=null; //链接oracle数据库
Statement statement=null;
ResultSet resultSet=null;
PreparedStatement preparedStatement=null;
try {
ConnectionOracle connectionOracle=new ConnectionOracle();
// System.out.println(connectionOracle+"链接oracle成功!");
ConnectionDB2 connectionDB2=new ConnectionDB2();
// System.out.println(connectionDB2+"-->>>链接DB2数据库成功!");
connDB2=connectionDB2.getConnection();
//执行DB2数据库sql语句,此处并非固定代码
String
db2SQL="SELECT ID,SENDNO,SENDTYPE,BRNUMBER
,SENDTIME,ALARMTIME,SENDCONTENT,ISSEND ,ELEALARMID from
DB2ADMIN.ET_SENDMESSAGEINFO";
//执行oracle数据库sql语句,此处并非固定代码
//String oracleSQL="INSERT INTO EPC.SYS_LOG(ID,REMARK) values(?,?)";
String
oracleSQL="INSERT INTO
EPC.ET_SENDMESSAGEINFO(ID,SENDNO,SENDTYPE,BRNUMBER
,SENDTIME,ALARMTIME,SENDCONTENT,ISSEND ,ELEALARMID )"
+ "VALUES(?,?,?,?,?,?,?,?,?)";
statement=connDB2.createStatement();
statement.execute(db2SQL); //执行sql语句
resultSet=statement.getResultSet(); //获取DB2数据库的结果集
connOracle=connectionOracle.getConnection(); //获取oracle数据库连接
connOracle.setAutoCommit(false); //把oracle数据库设置为非自动提交,以免在再循环里每次都提交,减低效率
preparedStatement=connOracle.prepareStatement(oracleSQL); //执行oracle语句,预编译
int num=0;
while (resultSet.next()) {
num ++;
preparedStatement.setString(1,resultSet.getString("ID"));
preparedStatement.setString(2, resultSet.getString("SENDNO"));
preparedStatement.setString(3, resultSet.getString("SENDTYPE"));
preparedStatement.setString(4, resultSet.getString("BRNUMBER"));
preparedStatement.setDate(5, resultSet.getDate("SENDTIME"));
preparedStatement.setDate(6, resultSet.getDate("ALARMTIME"));
preparedStatement.setString(7, resultSet.getString("SENDCONTENT"));
preparedStatement.setString(8, resultSet.getString("ISSEND"));
preparedStatement.setString(9, resultSet.getString("ELEALARMID"));/*
preparedStatement.setString(10, resultSet.getString("CONSUMETIME"));
preparedStatement.setString(11, resultSet.getString("TASKID"));
preparedStatement.setString(12, resultSet.getString("ISSYNCHRO"));
preparedStatement.setString(13,resultSet.getString("LOGTYPE"));
preparedStatement.setString(14, resultSet.getString("ISCACHE"));
preparedStatement.setString(15, resultSet.getString("LAST_RPORT_TIME"));
preparedStatement.setString(16, resultSet.getString("AUTO_REMEMBER"));
preparedStatement.setString(17, resultSet.getString("REMARK"));*/
preparedStatement.addBatch();
//每一万次在oracle数据库里提交事务
if(num>10000){
preparedStatement.executeBatch();
connOracle.commit();
num=0;
}
}
preparedStatement.executeBatch();
connOracle.commit();
} catch (Exception e) {
connOracle.rollback(); //oracle数据库事务回滚
e.printStackTrace();
}finally{
new CloseFunction().closeConnection(connOracle); //关闭oracle数据库,释放资源
new CloseFunction().closeConnection(connDB2); //关闭DB2数据库,释放资源
long endTime=System.currentTimeMillis(); //记录程序结束时间
System.out.println("总的时间:"+(endTime-startTime)/1000+"秒");
}
}
}

5. 怎么把db2数据库里的表导到sql 2000中去

使用sql2000的导入导出工具
数据源选择IBM OLE DB Provider for DB2,在属性连接中选择要导出的库
目标选择sql 2000,选一个要导入库
选择从源数据库复制表和视图,然后选择你要导出的表,一直下一步就成了

热点内容
安卓app缓存 发布:2025-08-17 07:10:28 浏览:363
约战伤害算法 发布:2025-08-17 07:06:09 浏览:924
预算数据库 发布:2025-08-17 06:49:46 浏览:272
旧版本火狐app脚本 发布:2025-08-17 06:49:44 浏览:559
渲染高清3d大图要什么配置 发布:2025-08-17 06:49:03 浏览:441
bmob存储图片 发布:2025-08-17 06:35:30 浏览:474
CTC数据库服务器如何连接 发布:2025-08-17 06:19:36 浏览:546
哪咤汽车upro选哪个配置 发布:2025-08-17 05:56:01 浏览:587
思科模拟路由如何重新配置 发布:2025-08-17 05:51:02 浏览:430
源码游 发布:2025-08-17 05:44:49 浏览:859