各位好:
小弟现在碰到一个dmp文件的导入问题。请大家多帮忙!
现有一个用户为a,表空间为b的dmp文件,我想将其导入用户为c,表空间为d的表空间。
查了一些资料,都是提示说改变用户在表空间的权限,但是一直没改成功。
我用编辑器打开dmp文件发现里面有原表空间b的名字,我将其全部改为新表空间d,但是这个文件保存后导入时没通过字符检查
请问有什么方法能将dmp文件中的全部内容(不光是table)导入另外一个新的表空间?
以前没用过oracle,麻烦各位将操作步骤写的稍微详细一些,谢谢!

解决方案 »

  1.   

    dump文件是二进制文件,虽然可以打开,但是编辑要出错的你用imp命令可以指定fromuser和touser选项,
    应该可以解决你的问题相关的帮助,用imp help = y可以看
      

  2.   

      用户为a,表空间为b,我理解的是用户a的默认表空间就是 b.
      所以问题简化为 
      对用户a备份生成的 dmp文件,如何到处到另外一个用户上去。
      1.建立用户c,使c的默认表空间为d.  
      2.把a用户生成的dmp全部导入到用户c下。
      imp userid=c/***@**** fromuser=a touser=c file'=**.dmp';
      

  3.   

    第一个命令这么敲
    create user c identified by password
    default tablespace d;
      

  4.   

    假设导出的dmp已经存在。create user c identified by c default tablespace d;然后授予其他的权限。比如connectgrant connect to c;导入数据:
    imp c/c fromuser=a touser=c file=d:\a.dmp ignore=y;注意,c用户不能有unlimited tablespace 权限。否则,会将数据导入到原空间,也就是b表空间。
      

  5.   


    scott用户的emp和dept表是在users表空间的.d:\>exp scott/tiger file=test1.dmp tables=(emp,dept)Export: Release 10.2.0.4.0 - Production on 星期二 3月 24 21:13:17 2009Copyright (c) 1982, 2007, Oracle.  All rights reserved.
    连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集即将导出指定的表通过常规路径...
    . . 正在导出表                             EMP导出了          13 行
    . . 正在导出表                            DEPT导出了           4 行
    成功终止导出, 没有出现警告。
    d:\>sqlplus /nologSQL*Plus: Release 10.2.0.4.0 - Production on 星期二 3月 24 21:13:26 2009Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.idle> conn / as sysdba
    已连接。
    sys@TEST> create user xx identified by xx default tablespace test;用户已创建。sys@TEST> grant create session ,create table to xx;授权成功。sys@TEST> alter user xx quota unlimited on test;用户已更改。sys@TEST> exit
    从 Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options 断开
    d:\>imp system/sys  file=test1.dmp fromuser=scott touser=xxImport: Release 10.2.0.4.0 - Production on 星期二 3月 24 21:16:21 2009Copyright (c) 1982, 2007, Oracle.  All rights reserved.
    连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options经由常规路径由 EXPORT:V10.02.01 创建的导出文件警告: 这些对象由 SCOTT 导出, 而不是当前用户已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
    . 正在将 SCOTT 的对象导入到 XX
    . . 正在导入表                           "EMP"导入了          13 行
    . . 正在导入表                          "DEPT"导入了           4 行
    即将启用约束条件...
    成功终止导入, 没有出现警告。d:\>sqlplus /nologSQL*Plus: Release 10.2.0.4.0 - Production on 星期二 3月 24 21:17:14 2009Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.idle> conn / as sysdba
    已连接。
    sys@TEST> SELECT OWNER, TABLE_NAME, TABLESPACE_NAME
      2    FROM DBA_TABLES S
      3   WHERE S.TABLE_NAME IN ('EMP', 'DEPT') AND owner='XX';OWNER                          TABLE_NAME                     TABLESPACE_NAME
    ------------------------------ ------------------------------ ------------------------------
    XX                             EMP                            TEST
    XX                             DEPT                           TESTsys@TEST> exit
    从 Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options 断开导入后,用户xx的emp和dept在test表空间[scott用户的emp和dept在users表空间]