RT,小弟我搞了两台服务器,都是Server2008+oracle,现在想做数据库的迁移。数据库现在服务器A上,我用exp 用户名/密码@数据库名 file=d:\oracle备份\2012021002.dmp log=d:\oracle备份\2012021002.log  full=y 导出。然后在服务器B上用imp 用户名/密码@数据库名 file=d:\oracle备份\2012021002.dmp log=d:\oracle备份\2012021002.log  full=y导入。导入也成功了,不过我在服务器B上的数据库的tablespaces中发现表的名字都加上了"用户名." ,例如表在服务器A上的名字为we 在B上就变成了"用户名.we"。 
原有的软件程序都是用的A上的表名,现在迁移之后无法启动,哪位达人能告诉我这个问题怎么产生的以及怎么解决的?
小弟不胜感激。
PS:用存储过程批量修改表名也可,在导入的时候解决这个问题也好!

解决方案 »

  1.   

    导入的时候使用SYSTEM用户导入,具体请参考:-- 将用户SCOTT对象导入到HR用户中
    IMP SYSTEM/manager FILE=C:\expdir\fulldb.dmp FROMUSER=SCOTT TOUSER=HR ROWS =y
      

  2.   

    2L的意思是用
    imp system/system密码 file=**.dmp fromuser=导出数据的用户名 touser=导入数据的用户名 
    rows=y 这个是什么意思? 不用full=y或者owner=导出数据用户名吗?
      

  3.   

    rows = 表示连同基表中的数据一起导入
      

  4.   

    rows=n连同表结构一起导出吧!