我建了一个表空间test,现在有一个dmp文件,这个dmp文件中有些表是test中没有的,用pl/sql导入dmp文件能在test中创建出这些含数据的新表么?

解决方案 »

  1.   

    可以的.只要你把用户的默认表空间指定到test表空间就行.
      

  2.   

    楼主这句话"这个dmp文件中有些表是test中没有的",本身有点问题啊。就算有同样的表建在test表空间上,如果不是这个用户的,也没有关系。如果这个用户已经有相同的表,不管是在test表空间还是其他表空间,应该就导不进去了。
      

  3.   

    要看你的表空间是不是你登录的用户的默认下表空间
    也要看你的dmp文件在导出时有没有加下表空间名和一切影响结果的因素
      

  4.   

    楼主如果用的是Oracle10g,那么这个问题就比较简单了.Oracle10g提供了比exp和imp功能更加强大的expdp和impdp工具,其中在导入时impdp有一个参数remap_tablespace参数可以实现导出数据库对应表空间到导入库对应表空间的映射,比如scott用户下的表都在users表空间下,导出时用expdp scott/tiger directory=data_pump_dir dumpfile=mydmp.dmp nologfile=y导入时想要把scott的数据导入到newscott用户下,test表空间中impdp system/passwd directory=data_pump_dir dumpfile=mydmp.dmp nologfile=y remap_schema=scott:test remap_tablespace=users:test
      

  5.   

    概念要清楚。表是属于user的,可以在不同的tablespace上建,但需要用户在这些表空间上有操作权限。所以说,如果导入用户USERA只拥有test表空间的权限,那导入的时候,表肯定会在test表空间建立。
      

  6.   

    是可以的,你还要指定你用那个用户导入的,而且这个表空间要属于这个用户,DMP,导入成功后,表空间里是有DMP中所以的数据,DMP中有的会替换掉