用sysdba角色创建一个emp表,在删除该表时提示“删掉sys.emp错误:ora-00604:递归sql层1出现错误 ora-00942:表或视图不存在“,这是什么原因,求高手帮忙!谢谢。

解决方案 »

  1.   

    对emp表进行其他操作可以吗?
    如insert、select等
      

  2.   

    可以进行select和insert操作,用select * from dba_tables where table_name='EMP'查询时有sys和scott两个用户。是不是用sysdba权限建表的原因啊???
      

  3.   

    肯定 俩个用户呀,因为两个用户下都有这个表,scott.emp是安装oracle是生成的,sys.emp是你建的。
      

  4.   

    我自己建了一个用户,有dba的角色,我用我自己建的用户建的这张表,但是这个表属于sys和scott这两个用户,怎么才能删掉一个用户?
      

  5.   

    用sys用户登录删掉。
    另外:删掉用户:drop user user_name cascade,
    cascade 属性,就是删掉用户,并且级联删除这个用户模式下的所有对象。
      

  6.   

    drop table sys."emp"呢?
    是不是建表的时候用双引号了?
    在无双引号时,oracle会自动把小写转换为大写.如果使用了双引号和小写字母建表,那么引用时也要加双引号.
      

  7.   

    select table_name,owner from dba_tables where lower(table_name) like 'emp';然后,drop table sys."查询的结果"严格和查询结果的大小写保持一致
      

  8.   

    这个错误可能是由于dual表中有多条记录造成的。解决:
    用sys用户登录:
    create table scott.ttt as select * from dual;select * from scott.ttt;如果有多行记录,譬如:
    D
    -
    X
    Y删除dual表多余的行,使它只剩下一行'X'
    delete from dual where dummy='Y';commit;drop table scott.ttt purge;不妨再检查一下dual表是否只剩下一行:
    create table scott.ttt as select * from dual;select * from scott.ttt;drop table scott.ttt purge;dual表中只剩下一行'X',现在可以删除你的表了:
    drop table emp;