如何从db链接复制所有数据库

时间:2017-07-17 11:13:25

标签: sql database oracle

使用: db:Oracle DB 11g XE和sql developer。

我创建了db link:

CREATE DATABASE LINK db_link 
CONNECT TO ROOT IDENTIFIED BY ROOT
USING '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ***)(PORT = 1521))) (CONNECT_DATA = (SID = xe)))';

我希望复制db_link中的所有表格。

我找到了解决方案,如何逐个复制:

create table temp_table as select * from OLD1@DB_LINK

如何从数据库链接复制所有数据库?

1 个答案:

答案 0 :(得分:1)

您可以通过以下方式获取表格列表:

select * from all_tables@db_link;

使用

创建副本
begin
for k in (select * from all_tables@db_link)
loop
execute immediate 'create table '||k.table_name||' as 
   select * from '||k.table_name||'@db_link';
end loop;
end;
/

但如果有多个架构,如果有索引等,则此代码可能会有所不同

您可能想尝试使用SqlDeveloper的数据库复制工具,该工具位于sqldeveloper的“工具”菜单中。