【从本人QQ空间迁移】oracle10g数据库导入oracle9i

最近有个项目,收到时是10g的dmp文件。
    按照平常的做法是:imp user/user file=xxx.dmp
   
通过正常的imp命令执行,出现如下错误:
    进行导入表操作,提示:
    IMP-00010: 不是有效的导出文件, 头部验证失败
    IMP-00000: 未成功终止导入
    通过查询得知:
           oracle数据库可以低版本导出,导入高版本。
           oracle相同版本导入导出。
     方法一:
            有方法说是用PL/SQL导出pde格式的文件,再导入。此方法我请一位同事试过,他说是报错,导不出来。
     方法二:
            PL/SQL导出sql文件,然后我这边用PL/SQL导入。
             经测试,依旧是文件头无法识别。
     方法三:
             修改本机的oracle版本为10g客户端,再用户客户端导入。
             经我测试,以失败告终。(也可能是我配置问题)
     方法四:
            oracle9i客户端连上oracle10g所在的服务器,导出文件。因为此服务器木有外网。之后麻烦这位同事用9i客户端连上帮我导出一份。但这位同事压力太大了,最后不了了之。
     方法五:
            本机安装oracle10g数据库,大约需要多少个G?。然后我这边再导入10g的dmp文件,然后我再下载个9i客户端,再导出。然后再导入9i测试机。但是oracle整个数据库我是从没装过,一般机器只装客户端,不装整个数据库。主要原因是卡。
    方法六:
            据说修改头文件能够导入。然后我找到了一篇说是9的两个版本只是编码问题修改,然后就可以了。但似乎并不能使用在10g的dmp文件。
    方法七:
            刚找到一款工具(ALxcTools),也是通过修改版本。正在测试中。。。
            很遗憾的告诉亲们,再一次无情的失败了。
   方法八:
            下载oracle11g安装文件,安装好后,将dmp导入本机。
             根据帅哥提示dblink。其后试验dblink创建语句等:

             create public database link conoracle connect to username identified by password
       using '(DESCRIPTION =
           (ADDRESS_LIST =
                 (ADDRESS = (PROTOCOL = TCP)(HOST = tcpip)(PORT = 1521)
                  )
            
)
           (CONNECT_DATA =(SERVICE_NAME =servicename))
        
)';
         特别注意:在9i连接11g的时候,用户名以及密码会自动转换为大写。在时间使用中务必加英文双引号""。
         使用dblink:select *from tablename@conoracle
         删除dblink:drop public database link conoracle;
         错误集锦:
         ORA-01017: invalid username/password; logon denied

       ORA-02063: preceding line from <link_name>
         用户名用户密码登录失败,我是由于大小写问题造成的。

         ORA-12560: TNS: 协议适配器错误(以下三种来自百度)
         1.监听服务没有启动。开始---程序---管理工具---服务,打开服务面板,启动oraclehomexxxlistener服务。
         2.database instance服务没有起起来。开始---程序---管理工具---服务,打开服务面板,启动oracleserviceXXXX,XXXX就是你的database SID.
        3.环境变量问题。regedit,然后进入HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0将该环境变量ORACLE_SID设置为XXXX,XXXX就是你的database SID.或者右键单击我的电脑,属性--高级--环境变量---系统变量--新建,变量名=oracle_sid,变量值=XXXX,XXXX就是你的database SID.或者进入sqlplus前,在command line下输set oracle_sid=XXXX,XXXX就是你的database SID.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值