将一个以上的表从一个数据库复制到另一个数据库

问题描述:

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

数据库:Oracle使用TOAD工具。

例:

数据库A:160桌

数据库B:想从数据库A的所有160个表复制到B.

我知道我可以写DB链接为一个表应付,但我想从不同的数据库中复制所有160个表。那可能吗?

+0

你有这两个数据库依赖于一台服务器或不同的服务器 – 2015-04-03 11:27:55

+0

你到目前为止尝试过什么? – 2015-04-03 11:47:15

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

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

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

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

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

如果这不是一个选项,应确实使用DATA PUMP,因为@LalitKumarB已经说过了。