我想訪問DB2中的oracle表(類似DBlink從DB2到oracle)。任何幫助表示讚賞。將oracle表複製到DB2
2
A
回答
4
1
Oracle有一項名爲異構服務的功能,它允許我們在Oracle數據庫和非Oracle數據庫(包括DB2)之間建立鏈接。 Find out more。
+0
異構服務允許訪問oracle中的DB2表,但是我們現在需要的是訪問DB2中的oracle表。 – hnm
0
import com.ibm.db2.jcc.am.gc;
import com.ibm.db2.jcc.t2zos.s;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import static org.omg.IOP.ENCODING_CDR_ENCAPS.value;
public class automateExport {
static String value;
public static void main(String[] args) throws SQLException, ClassNotFoundException {
// ResultSet rs = null;
String table_name;
Integer temp = 0;
Integer temp1 = 0;
Integer temp2 = 1;
String column_name = null;
String tableName = null;
String columnType = null;
int precision = 0;
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection codal = DriverManager.getConnection("jdbc:oracle:thin:@192.168.01.53:1521:orcl", "NAVID",
"oracle");
StringBuilder sb = new StringBuilder(1024);
Connection DB2 = getConnection();
String sql = "SELECT TABSCHEMA,TABNAME,COLNAME,TYPENAME,LENGTH FROM SYSCAT.COLUMNS WHERE TABSCHEMA NOT LIKE 'SYS%' ";
PreparedStatement mainStmt = DB2.prepareStatement(sql);
ResultSet rs = mainStmt.executeQuery();
ResultSetMetaData rsmd = rs.getMetaData();
int columnCount = rsmd.getColumnCount();
String str1 = "ADMIN2";
while (rs.next()) {
table_name = rs.getString(2);
if (table_name.equalsIgnoreCase(str1)) {
if (temp1 == 0) {
sb.append("create table").append(" ");
sb.append(table_name).append("(");
if (temp2 == 0) {
sb.append(" ").append(column_name).append(" ").append(columnType);
if (precision != 0) {
sb.append("(").append(precision).append(")");
sb.append(", ");
}
}
temp1 = 1;
temp = 1;
}
if (temp == 0) {
sb.append(table_name).append("(");
temp = 1;
}
column_name = rs.getString(3);
columnType = rs.getString(4);
sb.append(" ").append(column_name).append(" ").append(columnType);
precision = rs.getInt(5);
if (precision != 0) {
sb.append("(").append(precision).append(")");
sb.append(", ");
}
} else {
temp2 = 0;
sb.replace(sb.length() - 2, sb.length(), "");
sb.append(")");
temp1 = 0;
str1 = str1.replaceAll(str1, table_name);
column_name = rs.getString(3);
columnType = rs.getString(4);
precision = rs.getInt(5);
String sql2 = sb.toString();
PreparedStatement m = codal.prepareStatement(sql2);
m.executeUpdate();
sb.delete(0, sb.length());
}
}
codal.close();
DB2.close();
/*
}
private static Connection getConnection() throws ClassNotFoundException, SQLException {
Class.forName("COM.ibm.db2os390.sqlj.jdbc.DB2SQLJDriver");
Connection connection
= DriverManager.getConnection("jdbc:db2://localhost:50000/navid", "navid", "oracle");
return connection;
}
}
相關問題
- 1. 如何將DB2的表傳輸或複製到Oracle數據庫
- 2. Oracle SQL不會將重複項複製到Oracle表單10g
- 3. 從DB2複製表模式到SQL Server
- 4. 從sql server複製表到db2
- 5. DB2 SQL Server複製
- 6. 想要將oracle數據複製到hadoop
- 7. 將Oracle AES 256加密複製到C#
- 8. 如何將bytea從Postgres複製到Oracle
- 9. 將數據從SQL Server複製到Oracle
- 10. Oracle:將數據庫Oracle 10.2.0.2複製到Oracle 12c
- 11. 從Oracle複製到SQL Server表中
- 12. 從db2到oracle的轉換
- 13. Oracle緩慢地將本地表加入到DB2主機
- 14. SQL Server 2008:如何將數據從DB1中的表複製到DB2中的表?
- 15. 使用c#將表數據從oracle複製到SQL Server?
- 16. 將電子表格數據複製到Oracle數據庫
- 17. Oracle過程將數據視圖複製到表
- 18. PL/SQL將Oracle表格複製到一個csv文件
- 19. Oracle將數據複製到另一個表中
- 20. sas entreprise指南將sas表複製到oracle數據庫
- 21. 發佈(複製)Oracle到Sql2008r2
- 22. 如何將記錄從Server1 db1 table1複製到Server2 db2 table2?
- 23. 將表單複製到Outlook
- 24. 將Cassandra表複製到Hive
- 25. 複製DB2數據庫
- 26. 從一臺服務器到另一個複製表中DB2
- 27. 如何將表複製到DB2 DPF實例中的所有節點?
- 28. 使用觸發器(包含XML)將DB2行復制到歷史記錄表中
- 29. 將DB2數據上傳到Oracle數據庫 - 修復垃圾數據
- 30. 從Oracle到DB2的查詢是否可以通過dblink阻止DB2表?
是否要將數據從Oracle遷移到DB2?從Oracle訪問DB2表(甚至不確定這是否可能)? – Shahzeb
如果您想a)將數據從Oracle複製到DB2或b)從DB2訪問Oracle表或從c)訪問Oracle的DB2表,則應該下定決心。 – Filburt
我想訪問DB2中的Oracle表,但我沒有找到任何文檔。 – hnm