如何快速的将一个数据库表中的数据导入到另一个数据库表中

两个数据库之间使用DB LINK进行访问,现在需要将一个数据库表中的数据复制到另一个数据库表中,大概有200多万条数据,直接使用insert into 语句,平时数据库没人用的时候,大概7到8分钟就可以导完,若跑批任务使用数据库,花了大概20多分钟也导不完,还有没有什么快速稳定一点的导数方式,求大神帮助!!!!!不胜感激!!!!!

 public static List<Map> getList(String sql,Connection conn2) throws SQLException { 
        List list = new ArrayList();
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        try {
            conn = conn2;
            ps = conn.prepareStatement(sql);
            rs = ps.executeQuery();
            //源 数据  (构成表的  行  列 )
            ResultSetMetaData metaData = rs.getMetaData();
            //获取表的列数   几列
            int columnCount = metaData.getColumnCount();
            Map map = null;
            while(rs.next()) {
                //Student stu = new Student();
                //Object obj = clazz.newInstance();
                map = new HashMap();
                for (int i = 1; i <= columnCount; i++) {
                    //key字段名      value字段的值
                    map.put(metaData.getColumnLabel(i), rs.getObject(i));
                    //   sid   1   sname 宋小宝
                //  BeanUtils.copyProperty(obj, metaData.getColumnLabel(i), rs.getObject(i));
                }
                list.add(map);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            close(rs, ps, conn);
        }
        return list;
    }

这是我以前的工具类。后来改了,你看看能使吗?封装成map

oracle數據庫使用數據泵導出導入即可,快速完成。
以下是例子
expdp system/oracle directory=dump dumpfile=20161109sfs.dmp logfile=20161109sfs.log schemas=SFS;

java多线程迁移表,使用jdbc可以快点,思路,查询一些数据封装成map,放入list,遍历list转成insert语句