导入表误导到system用户下,删除表时多删了,现在无法删除其他用户:
SQL> drop user bjnew cascade;
drop user bjnew cascade
*
ERROR 位于第 1 行:
ORA-00604: 递归 SQL 层 1 出现错误
ORA-00942: 表或视图不存在但是可以创建用户,建表。

解决方案 »

  1.   

    与其他可以正常使用且相同版本oracle服务器上的system用户拥有的表对比,找出被删除的表。应该可以的。
      

  2.   

    http://www.cnoug.org/archive/index.php/t-24432.htmlsystem表空间是不可以脱机(offline)的,该表空间的数据文件也是不可以脱机的,
    也就是说,如果system表空间的数据文件被误删除了,那么必须关闭数据库(shutdown abort),
    而后在mount之后open之前对system表空间的数据文件(而不是表空间)进行物理恢复.必要的恢复文件:
    .归档和联机的重做日志文件
    .当前的控制文件
    .system表空间数据文件的(冷或热)备份
    恢复步骤:
    ------------------------------------------------
    SQL>shutdown immediate
    ORA-01122: datafile file 1 failed verification check
    ORA-01110: data file 1: '/oracle/oradata/ora/system01.dbf'
    ORA-01208: data file is an old version - not accessing current versionSQL> shutdown abort
    ORACLE instance shut down.SQL> startup
    ORACLE instance started......
    .....
    Database mounted.
    ORA-01113: file 1 needs media recovery
    ORA-01110: data file 1: '/oracle/oradata/ora/system01.dbf'
    SQL> recover datafile '/oracle/oradata/ora/system01.dbf';
    Media recovery complete;SQL>alter database open;
    Database altered.SQL>
      

  3.   

    在这样做之前,之前的数据库必须工作在archivelog 模式下。否则没用。
      

  4.   

    若工作在归档模式下,可以将数据恢复到某一个时间点recover database until time '.....'查看归档状态
    archive log list也可以试试 楼上的
      

  5.   

    多谢各位!
    我起事务session跟踪出来少表,AQ$_INTERNET_AGENT_PRIVS,但是重建,系统说已经有该表,删又说没有这个表,    :<少的其他表都能加上,怎么会这样哪?各位高人有知道的吗?
      

  6.   

    你是用system登录的吗?
    select owner,object_type from all_objects where object_name='AQ$_INTERNET_AGENT_PRIVS';