将多个表从一个数据库复制到另一个数据库

时间:2015-04-03 11:24:47

标签: sql oracle plsql toad

我在一个数据库中有160个表。要求是将它们复制到不同的数据库中。

  

数据库:Oracle使用TOAD工具。

例如:

  

数据库A:160张表

     

数据库B:想要将数据库A中的所有160个表复制到B中。

我知道我可以为一个表复制编写DB链接但我想复制来自不同数据库的所有160个表。那可能吗?

2 个答案:

答案 0 :(得分:1)

我建议使用标准的 DATA PUMP 功能。您需要使用EXPDP从源导出所有160个表,然后使用IMPDP将它们导入目标数据库。

请参阅文档以了解有关DATA PUMP的更多信息。

我相信TOADSQL Developer等大多数基于GUI的工具都具有导出和导入功能。

答案 1 :(得分:0)

鉴于您只需要表/数据并且您不关心索引和约束,并且您可以使用DBLINK,您可以使用简单的脚本将所有表从远程服务器复制到本地服务器:

BEGIN
    FOR C IN (SELECT * FROM USER_TABLES@REMOTEDB) LOOP
        EXECUTE IMMEDIATE 'CREATE TABLE ' || C.TABLE_NAME || ' AS (SELECT * FROM ' || C.TABLE_NAME || '@REMOTEDB)';
    END LOOP;
END;
/

如果这不是一个选项,确实应该使用DATA PUMP,正如@LalitKumarB已经说过的那样。