我想访问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. 如何将bytea从Postgres复制到Oracle
- 4. 将数据从SQL Server复制到Oracle
- 5. 想要将oracle数据复制到hadoop
- 6. Oracle:将数据库Oracle 10.2.0.2复制到Oracle 12c
- 7. 从db2到oracle的转换
- 8. Oracle缓慢地将本地表加入到DB2主机
- 9. SQL Server 2008:如何将数据从DB1中的表复制到DB2中的表?
- 10. Oracle将数据复制到另一个表中
- 11. sas entreprise指南将sas表复制到oracle数据库
- 12. 将电子表格数据复制到Oracle数据库
- 13. PL/SQL将Oracle表格复制到一个csv文件
- 14. 发布(复制)Oracle到Sql2008r2
- 15. 将Cassandra表复制到Hive
- 16. 如何将表复制到DB2 DPF实例中的所有节点?
- 17. 使用触发器(包含XML)将DB2行复制到历史记录表中
- 18. 将DB2数据上传到Oracle数据库 - 修复垃圾数据
- 19. 从Oracle到DB2的查询是否可以通过dblink阻止DB2表?
- 20. 将工作表复制到工作表
- 21. 将excel表格复制到表格中
- 22. 将7列表复制到6列表
- 23. DB2 z/OS到Oracle/Postgres的迁移:DB2 Connect替代
- 24. 无法将数据从DB2通过Java复制到Oracle,因为不同的字符集
- 25. 如何创建DB2 UDB控制表设立新的复制
- 26. Oracle从一个表复制blob数据到另一个表
- 27. Oracle从一个表触发复制数据到另一个表
- 28. 将XML功能从Oracle迁移到DB2 LUW(AIX上的ver 9.7)
- 29. Oracle可以将11g连接到DB2或SQL Server吗?
- 30. 在oracle中复制
是否要将数据从Oracle迁移到DB2?从Oracle访问DB2表(甚至不确定这是否可能)? – Shahzeb
如果您想a)将数据从Oracle复制到DB2或b)从DB2访问Oracle表或从c)访问Oracle的DB2表,则应该下定决心。 – Filburt
我想访问DB2中的Oracle表,但我没有找到任何文档。 – hnm