oracle11g用exp命令导出的dmp文件10g是不能识别的,网上有一种方法就是用notepad++修改dmp文件的版本号(不知道为什么用editplus修改就不行),修改完成之后是可以导入的,表什么的也都对,目前还不清楚有什么缺点,只不过报了一大堆错其实最好的办法就是用10g的客户端连接oracle11g然后用exp命令导出,下面讲得就是这个办法
在10g的电脑上操作: 打开oracle10g中的Net Manager,具体路径如下图
然后点击 服务命令,如下图,此时左侧绿色的加号就可以点了,点击新建
给远程连接起一个服务名,待会导出的时候会用到此名称,这里起名test_orcl,下一步
然后协议选择TCP/IP即可,下一步
主机名这里填11g电脑的ip地址,首先需要确保在10g电脑上可以ping通这个ip地址如下图,端口号一般默认
因为我们连接的是11g,所以选择第一个,服务名一般没改过的话都是orcl
设置完成,可以测试一下,默认是用的scott/tiger来测试的,当然如果你改过scott的密码或者scott用户没有解锁,可以点击 更改登录 换一个账户测试 测试成功的前提条件当然是10g的电脑可以ping通11g的电脑,而且前面的操作都正确
完成后不要忘记保存网络配置,具体操作如下图
此时已经建立好连接了,用命令导出一下看看,打开10g电脑的命令提示符,输入如下命令: exp userid=exam/exam@test_orcl file=c:\exam.dmp log=c:\exam.log 注: 1.exam/exam为11g电脑上的用户连接名和密码 2.@test_orcl是前面几步用net manager建立的连接 3.后面的是dmp和log文件保存的位置(下图命令有错,可以看上面手打的)
如下图已经可以正常导出了,导出的dmp文件的头部版本号就是这个10g的客户端的版本,然后直接用imp命令就可以导入到当前10g的数据库了 命令参考如下: imp userid=exam/exam@orcl fromuser=exam touser=exam file=c:\exam.dmp log=c:\exam.log