导入数据库时表名前面有都有用户名 如何解决??

解决方案 »

  1.   

        我补充下问题,首先我把备份好的数据库文件拿过来以后,要导入我的数据库,但当我导入后发现,所有的表前面都加了用户名,这导致我的原表无法使用,要用好要在表名前加个:用户.表名
        起初我以为是备份的数据库问题,发现不是备份的文件,是数据库的问题。我弄的半天始终找不到解决的办法,希望大家给你帮助。
        楼上的仁兄你说的太不现实了吧!!千数来张表,一张一张的修改未免工作太大了,再说用PL/SQL右击重命名,发现显示出来的表名没有家用户,这让我很是郁闷....
      

  2.   

    楼主导出来后,所有表前都加了用户名?楼主是怎么导出来的啊?楼主这里说的是”用户.table_name“,这个地方是指的这个就是你导出来的表吗?如果这样理解对,那楼主所说的你以前的表无法使用,要用也要在表明前加个:user.table_name,你是追加导入的吗还是全部重新导入你的数据库?这点没明白。
      

  3.   

    我从服务器上emp将数据库备份下来,现在想导入本地机器上,所以我把以前的老数据库和用户删除了,重新添加用户和表空间,随之导入备份的数据库,可导完后发现,所有的表前面都加了个用户,以至于我想用的话,还用在表前面加上:用户.表名才能用。
    我考虑原因是我之前的删除的老的表空间时,还有残留,导致现在的问题发生,我之前删除旧表空间是用ORACLE客户端直接删除的。
      

  4.   

    我是写了脚本的,
    第一个,exp.bat 如下:
    SET ADMIN_ACCOUNT=username1/password1@serviceName
    SET FILENAME=fliename
    SET NLS_LANG=AMERICAN_AMERICA.AL32UTF8
    EXP %ADMIN_ACCOUNT% FILE=%DMPFILENAME%.DMP LOG=%FILENAME%.LOG FULL=Y
    PAUSE
    第二个,imp.bat如下:
    SET IMPORT_ACC=username2/password2@serviceName
    SET TOUSER=username2
    SET FROMUSER=username1
    SET NLS_LANG=AMERICAN_AMERICA.AL32UTF8
    SET DMPFILE=fliename.DMP
    IMP %IMPORT_ACC% FILE=%DMPFILE% FROMUSER=%FROMUSER% TOUSER=%TOUSER% IGNORE=Y LOG=ERRORIMP_%TOUSER%.LOG COMMIT=Y
    PAUSE
    就这样导入新的数据库,表名前都加了username2,查询时直接用表名提示:表不存在,要用username2.表名才能查询,怎么样在查询到时候直接用表名啊?
      

  5.   

    如果遇到这样的问题 是用了导出和导入的同一方法  所以就会这样  你们都是imp 用户/秘密@数据库 full=y ignore=y file=地址:\要导入的数据库  这样前面就会加用户.表名   开始你就这样导入 imp full=y ignorey file=地址:\要导入的数据库  不加用户和密码@数据库  
    当你写了 imp full=y ignorey file=地址:\要导入的数据库  之后  cmd会提示你输入需要导入的用户和密码  这样你再输入你要导入的账号和密码  
      执行导入过程 --> OK