兵官扯蛋之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。不过可以使用导出用户对象功能进行补充。
原理:使用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。不过可以使用导出用户对象功能进行补充。
相关文章推荐
- JVM虚拟机内存及垃圾收集
- 基于 Red Hat 的发行版 Oracle Linux 正式发布Oracle Linux 7.1
- mysql load data 导出、导入 csv
- Oracle Containers for J2EE远程安全漏洞(CVE-2014-0413)
- Oracle 10g R2不能使用EM的问题
- 如何在安装之前检查 Linux 软件包的版本?
- 表空间操作
- PreparedStatement中in子句的处理
- VMware下RedHat4.8_64位安装Oracle 10g RAC--简略脚本
- oracle sql日期比较
- 基于 Red Hat 的发行版 Oracle Linux 正式发布Oracle Linux 7.1
- OS block size和Oracle block size,查找OS Blocksize的方法
- 1分钟导出MySQL的数据字典
- 1分钟实现MySQL批量导出以某数字或字母开头的表
- oracle中创建数据库和表空间的几点总结
- 数据库自动备份脚本
- 注册表导出管理员密码文件