我在一个数据库中有160个表。要求是将它们复制到不同的数据库中。
数据库:Oracle使用TOAD工具。
例如:
数据库A:160张表
数据库B:想要将数据库A中的所有160个表复制到B中。
我知道我可以为一个表复制编写DB链接但我想复制来自不同数据库的所有160个表。那可能吗?
答案 0 :(得分:1)
我建议使用标准的 DATA PUMP 功能。您需要使用EXPDP
从源导出所有160个表,然后使用IMPDP
将它们导入目标数据库。
请参阅文档以了解有关DATA PUMP的更多信息。
我相信TOAD
,SQL 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已经说过的那样。