兵官扯蛋之3步搞定不同oracle版本导库迂回战术

来源:互联网 发布:东欧剧变 知乎 编辑:程序博客网 时间:2024/04/30 01:23
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。不过可以使用导出用户对象功能进行补充。

 
0 0