新建了一个表空间KK,指定文件名为KK.DBF,大小为1024M
用户UTC的默认表空间为KK.DBF
现在在dos下用imp导入数据,为什么导进去的数据不是在KK.DBF里而是在USERS01.DBF里?
问题1:如果把导入USERS01.DBF里的数据删除,我用drop tablespace KK including contents and datafils ,只删除了KK.dbf,再导的时候就提示违反唯一性了。
问题2: 怎样才能把数据导在KK.DBF里?
问题3:如果不能把数据导在KK。DBF里,那建表空间的意义何在呢?
刚入门,菜菜,谢谢先。

解决方案 »

  1.   

    新建了一个表空间KK,指定文件名为KK.DBF,大小为1024M
    用户UTC的默认表空间为KK.DBF
    现在在dos下用imp导入数据,为什么导进去的数据不是在KK.DBF里而是在USERS01.DBF里?
    可能原因:导出的数据的表空间为users,且用户UTC是否拥有unlimited tablespace权限,revoke unlimited tablespace from utc;
    收回权限再尝试问题1:如果把导入USERS01.DBF里的数据删除,我用drop tablespace KK including contents and datafils ,只删除了KK.dbf,再导的时候就提示违反唯一性了。
    删除了KK tablespace和users tablespace一点关系都没有,所以删除KK表空间不影响刚才导入的数据重新导入的时候加上参数ignore=y等,就可以了
      

  2.   

    你把imp命令帖出来,看看,可能有用的用户错了。
      

  3.   

    imp我没带任何参数,有提示的地方都按默认方式进行
      

  4.   

    imp 参数如下:
    只列出导入文件的内容(yes/no):no>no
    由于对象已经存在,忽略创建错误>yes
    导入权限>yes
    导入数据表>yes
    导入整个数据文件>no
    用户名:(此处我输入了一个,与导入库的用户名一样,在本机也建了个同样的用户名,默认表空间为KK)
      

  5.   

    UTC的角色是:DBA和CONNECT
         系统是:SYSDBA和SYSOPER (之前有unlimited tablespace权限,现在删除了)但此时导入会提示没有KK.dbf的权限,奇怪哦
      

  6.   

    导出前的数据本来就是在USERS01.DBF里吧?
      

  7.   

    .回收用户unlimited tablespace权限
    这样就可以导入到用户缺省表空间
    SQL> create user bjbbs identified by passwd
      2  default tablespace bjbbs
      3  temporary tablespace temp
      4  /User created.
    SQL> grant connect,resource to bjbbs;Grant succeeded.SQL> grant dba to bjbbs;Grant succeeded.SQL> revoke unlimited tablespace from bjbbs;Revoke succeeded.SQL> alter user bjbbs quota 0 on users;User altered.SQL> alter user bjbbs quota unlimited on bjbbs;User altered.SQL> exit
    再重新导入
      

  8.   

    谢谢各位。导出前的数据本来是在USERS01.DBF里alter user bjbbs quota unlimited on bjbbs;
    这句是什么意思呢?
      

  9.   

    谢谢hdyd,现在数据已经能导到kk.dbf里了
    但是出现了另一个问题:
        UNDOTBS01.DBF 这个表也跟着非常大,快跟上我导进去的数据了
    这又是怎么回事呢?