我想从A表导出数据并将数据导入B表。 A和B表是相同的表,它们有100列。如何在JDBC中导出和导入?我想动态地做。我不想写一个列到其他列。(2个表有相同的列。但是oracle中的表A和mysql中的表B) 谢谢。
答案 0 :(得分:1)
尝试:
insert into tableB
select * from tableA
如果表位于不同的数据库中,在数据库之间创建数据库链接(授予您有权这样做),也可以这样做。
您可以在内存中复制TableA中的最大列数,然后将它们插入TableB中,但我强烈反对这一点。
不幸的是,在java中没有类似于.NET BulkCopy
答案 1 :(得分:0)
这可能会有所帮助:
ResultSet rs = st.executeQuery("SELECT * FROM A");
ResultSetMetaData rsmd = rs.getMetaData();
int columnCount = rsmd.getColumnCount();
String insert_string = "INSERT INTO B(" ;
for (int i = 1; i < columnCount + 1; i++) {
String column = rsmd.getColumnName(i);
insert_string += column + ", " ;
}
insert_string += " )"; // Column part of INSERT INTO B should be well formed
insert_string += " VALUES (" ;
int i=0;
while(i < columnCount - 1){
i++;
insert_string += "'"+ rs.getString(i)+"', " ;
}
insert_string += "'" + rs.getString(columnCount) + ")" ; // VALUES part should be ok by now
到目前为止,我们必须有一个有效的INSERT
语句,但这仅适用于rs
对象中的一行。代码中必须包含rs.next()
的迭代,以便为所有A行重复创建INSERT
字符串。
至于表现,我老实说没有任何线索。我不推荐这个,但我认为这是解决问题的公平方式。