當前位置:首頁 » 操作系統 » 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,選一個要導入庫
選擇從源資料庫復製表和視圖,然後選擇你要導出的表,一直下一步就成了

熱點內容
資料庫訂貨系統 發布:2025-08-16 21:46:57 瀏覽:15
c語言畫點 發布:2025-08-16 21:21:11 瀏覽:90
如何將游戲數據從安卓轉移到iphone 發布:2025-08-16 20:58:55 瀏覽:362
多表編譯教程 發布:2025-08-16 20:58:54 瀏覽:607
市民雲實名制伺服器異常 發布:2025-08-16 20:50:51 瀏覽:712
目標伺服器地址格式錯誤 發布:2025-08-16 20:40:55 瀏覽:708
文件夾病毒專殺軟體 發布:2025-08-16 20:40:50 瀏覽:806
百信電腦初始密碼多少 發布:2025-08-16 20:32:38 瀏覽:392
家裝電箱怎麼配置最合理怎麼接線 發布:2025-08-16 20:23:15 瀏覽:678
安卓系統加密什麼意思 發布:2025-08-16 20:13:11 瀏覽:100