数据库启动正常吗?还要看下你是用哪个用户连接,如果这些设置都没有改变,那可能是人为的操作了。你使用SYSTEM/MANAGER 连接再访问你的用户的表试:SELECT * FROM USER.TABLE_NAME

解决方案 »

  1.   

    to LGQDUCKY(飘) 
    谢谢你的回复。如果是人为操作,那么,是否会留下操作的日志呢?在系统日志当中,没有看到有人执行drop命令。请问,使用system登录后,和使用其它用户登录,使用的sql有什么差别吗?我没用过oracle,这是头一次使用。公司有一个管理员,但,他也没找到问题。
      

  2.   

    我来支持,可我不会:psystem当然是系统帐户~拥有最高权限。
    是不是有人用那个帐户误操作了?还是权限分配不对导致普通帐户搞坏了系统表???
      

  3.   

    一共4个人具有权限,但,昨天大家都比较忙,没有时间,也没有人操作oracle。另外,也不可能一下删除了所有的表啊!反正,原因是说不清了。
      

  4.   

    有备份的话.恢复(imp)一下
    还有,你看一下是不是有的客端上装了PB等工具.如果有用户点了"橡皮擦",表就会被删除
      

  5.   

    谢谢上面的两位朋友,我们使用.net连,客户端没有pb。
      

  6.   

    建一个监控ddl 的triggerconn / as sysdba
    create trigger tr_trace_ddl
    AFTER DDL ON DATABASE
    DECLARE
      sql_text ora_name_list_t;
      state_sql ddl$trace.ddl_sql%TYPE;
    BEGIN
       FOR i IN 1..ora_sql_txt(sql_text) LOOP
          state_sql := state_sql||sql_text(i);
       END LOOP;
       INSERT INTO ddl$trace(login_user,ddl_time,ip_address,audsid,
                        schema_user,schema_object,ddl_sql)
            VALUES(ora_login_user,SYSDATE,sys_context('USERENV','IP_ADDRESS'),userenv('SESSIONID'),
                   ora_dict_obj_owner,ora_dict_obj_name,state_sql);
    EXCEPTION
       WHEN OTHERS THEN
          raise;
    END tr_trace_ddl;
    /
      

  7.   

    谢谢楼上的朋友!我初用oracle,只要熟悉plsql就可以了,管理公司有人做。你的SQL对我很有帮助,谢谢!