exp80 A/A OWNER=A导出的是用户A的所有对象,如果导出数据库将owner=a改为full=y
imp80 A/A FILE=EXPDAT.dmp DESTROY=y,需要添加上ignore=y

解决方案 »

  1.   

    如果在导出的时候加上full=y,我看到数据库B也被导出了,那是怎么回事?
      

  2.   

    你有没有A这个用户啊,别把OWNER理解成了数据库。
      

  3.   

    有啊,用户名A,密码A登录操作是没有问题的,我刚接触oracle,很多地方十分混淆的说我是这样建数据库的:缺省安装,然后在net8 easy config里面新建一个服务,然后用oracle的工具导入ACCESS数据库A,这个时候数据库里已经有了A这个表空间和用户,然后我把A用户的密码改成‘A’,然后就用用户名A、密码A登录A数据库(很荒唐的说),同样我导入另外一个ACCESS数据库B,修改用户密码,这个时候我想导出A数据库,然后又导入回来(程序需要),我就做不了了,请教请教
      

  4.   

    我以为你要导出整个数据库.其实你的意思只是导出用户A名下的所有对象,是吧
    导出语句没问题
    你要想将现有数据库中用户A的对象覆盖掉应该drop user a cascade;然后再创建用户,赋权限,再将导出的文件导入.
      

  5.   

    to guo:谢谢,但是我还是觉得很麻烦,我现在不是以交互式来完成这一功能,是要在程序中后台完成,我现在只是希望导出数据库A后,能在导入的时候将原来A数据库的数据覆盖掉。(我现在试验,发现原来的数据还是存在)
      

  6.   

    怎么还没解决?
    1.清除原表数据:
    select 'truncate table '||table_name from user_tables;将产生的输入做为脚本运行,可以清空该用户下的表.
    2.imp user/pwd file=yourfile ignore=y将原来导出的文件导入.
      

  7.   

    to guo(正在学Oracle和Solaris) :
    你这种办法不是很有效,一次不能删除干净,要重复好几次的。
    我现在是用删除用户,重建用户,赋权限。这样就可以搞定
    多谢各位