A库导入到B库。
原理:使用create table as的方式导入结构和数据。
优势:不在乎oracle数据库版本的不同;不需要使用exp先导出A库到本地,再使用imp导入到B库;clob字段也能正常导入(blob未测试);效率还很快;
1. B库建立dblink链接A(我建的dblink叫 hztd_229)。
2. A库执行以下语句,获取sql脚本。
select 'create table ' || t.table_name || ' as select * from ' ||
t.table_name || '@hztd_229;'
from user_tab_comments t
where t.table_name not like '%$%'
order by t.table_name;
3. B库使用命令窗口模式执行A的查询脚本;
4. 如果B库执行命令有部分表因主外键的原因导致执行失败,执行再执行一次或多次即可。
5. 如果B库不能直接建立dblink到A库,那么增加中间库(如本地库C)执行上述步骤从A导入C,C再导入B。
6. 本地oracle被B库访问方式:在listener.ora中增加
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.3.3.229)(PORT = 1521))
其中192.3.3.229为本地IP。
缺点:只能导table和view。不过可以使用导出用户对象功能进行补充。
转载请注明原文地址: https://ju.6miu.com/read-200118.html