公司业务里需要使用Oracle的数据库,老总给我了几份从linux系统下导出的dmp文件(注意是从linux下的oracle导出的dmp文件),总量为8个G。我的操作系统是win7的,然后oracle是11G的,我使用PL/SQL 9.0以上版本进行导入的操作。但是,当我选择dmp文件,点击导入的时候,命令窗口闪了一下就关闭了,然后数据表里什么都没有。开始我以为是用户的什么问题,我刚开始用的是scott用户,但是没有成功的导入,后来根据他的代码我创建了一个用户赋予了dba权限然后导入后来就报出了oracle1999文件路径的错误。因为他导出的路径是linux系统下的路径,所以在创建表空间的时候在windows下找不到那个路径。我查了很多资料,意思就是让我创建新的表空间。可是,怎么创建啊?就是命令怎么写?例如在linux底下的路径是:/app/oracle/test.dmp;那我在windows底下该如何操作才能成功的把dmp给导入进去?sqlplus的导入命令行我的老是出错,所以暂不考虑,望高人指点我如何将linux下导出的dmp文件导入到windows底下的oracle里,跪求详细步骤!

解决方案 »

  1.   

    先创建需要的表空间,表空间数据文件路径可以自己设的,表空间名跟dmp里的表的表空间一样就行了,然后试试
      

  2.   

    cmd下imp system/manager fromuser=你的导出用户 touser=导入的用户 file=d:\test.dmp 
    然后贴出错误
      

  3.   

    dmp文件不是点击的楼主对exp/imp知识缺漏的有点多。
    你把dmp文件放在本地的windows路径下。比如d:\xx.dmp
    新建一个表空间和表空间对应的用户。给这个用户权限
    create tablespace xxx datafile 'd:\xx.dbf' size 100m autoextend on;
    create user xxx identified by xxx default tablespace xxx temporary tablespace temp; 
    然后在cmd命令下执行imp命令:
    如果导出时有指定owner参数 那么使用用户模式
    imp userid=system/manager file=d:\xx.dmp  log=d:\mylog.log fromuser=xxx touser=xxx
    或者直接使用 
    imp userid=system/manager file=d:\xx.dmp  log=d:\mylog.log 
    如果出现了警告 查看一下这个mylog.log
      

  4.   

    奇怪我写了一大段没有发出来。直接贴出你的log吧
      

  5.   

    不是这么简单的首先要确定是用什么导出的 exp 还是 expdp,对应的导入命令也不同 imp 还是 impdp导出的全库、用户、还是表?最好把导出命令一并发给你,对应的改一下就是导入命令了。至于 说到表空间的事,那是 oracle 的表空间管理语法,不是 导出导入的知识。
      

  6.   

    cook的说法很有理啊,我导入的应该是全库还有我的什么imp命令之类的在我sqlplus里面提示无用命令!纠结啊·······
      

  7.   

    如下信息,我这边也遇到了同样的问题,还请大侠解决:万分感激!已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
    IMP-00007: 必须为 DBA 才能将对象导入另一个用户帐户
    IMP-00000: 未成功终止导入
      

  8.   


    是dmp格式的 导出的用户方式的。
    求大神们帮帮忙。