我需要将正式库中按schemas=kingdee导出来的文件恢复到测试库中,两库中都有kingdee用户,默认表空间名字不一样,于是我就把测试库的kingdee默认的表空间修改和正式库一致,在impdp的过程中,经常提示对象已经存在,我上网查了一下,可以用table_exists_action=replae重建,但这个参数是对表而言的。问题:schemas包括table,index,view,constraint等等,测试库会存在一些名字一样但内容不一样的模式对象,此时如何导入,使得在两库中查询到的数据是一致的?

解决方案 »

  1.   

    我的意思是说在两库kingdee用户下存在相同的对象,那我用正式库的dmp文件恢复到测试库肯定会提示对象已经存在的
      

  2.   


    你的测试库只能有一个用户叫kingdee,那么你是想保留原来的对象还是保留你的dmp文件中的对象?
    想保留原来的就让它提示,不用管;
    想保留dmp里的就把原来的对象删除;
    想两个都保留就再建一个用户保存dmp里面的对象;有什么需要疑问的?
      

  3.   

    drop user kingdee cascade;create user kingdee identified by xxx tablespace xxx;impdp ...
      

  4.   


    你的测试库只能有一个用户叫kingdee,那么你是想保留原来的对象还是保留你的dmp文件中的对象?
    想保留原来的就让它提示,不用管;
    想保留dmp里的就把原来的对象删除;
    想两个都保留就再建一个用户保存dmp里面的对象;有什么需要疑问的?
    例如正式库kingdee有A表,B视图,测试库kingdee中也有A表,B视图,在恢复时肯定会发生冲突,我可以通过table_exists_action=replae重建表,但视图怎么控制呢?我的目的是把正式库的schemas对象恢复到测试库上。
      

  5.   

    试试加这个参数
    CONTENT=DATA_ONLY