将一个以上的表从一个数据库复制到另一个数据库
问题描述:
我在一个数据库中有160个表。要求是将它们复制到不同的数据库中。将一个以上的表从一个数据库复制到另一个数据库
数据库:Oracle使用TOAD工具。
例:
数据库A:160桌
数据库B:想从数据库A的所有160个表复制到B.
我知道我可以写DB链接为一个表应付,但我想从不同的数据库中复制所有160个表。那可能吗?
答
我会建议标准数据泵功能。您需要使用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已经说过了。
你有这两个数据库依赖于一台服务器或不同的服务器 – 2015-04-03 11:27:55
你到目前为止尝试过什么? – 2015-04-03 11:47:15