您的位置:首页 > 数据库 > Oracle

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

2017-02-10 09:28 281 查看
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。不过可以使用导出用户对象功能进行补充。



 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息