select table_name from user_tables可以查到表名字是tABLE1,用
select * from user_tab_columns where table_name=‘tABLE1’
也能查到表的字段,但是insert into tABLE1 values()的时候就出现表或视图不存在的错误,drop table tABLE1也是这个错误。我感觉应该是表实际上是不存在的,但是为什么一直能查到他的信息呢?
Oracle小菜,希望问题不会太白痴吧
哪位高手能给指点下吗,谢谢!!

解决方案 »

  1.   

    先看一下 table1 的 owner 是谁
    然后使用 table1 的 owner 登陆数据库
    给你使用的用户授权
      

  2.   

    表应该是存在的  确认表所属用户是否正确  用户是否有对表Insert操作权限
      

  3.   

    查看你是在那个用户下操作的,看看是否拥有drop insert select truncate ..这些权限  如果没有
    以dba登录 把那些权限授权给拥有表的用户
      

  4.   

    先谢谢上面各位
    我记得是在scott用户下建的 现在也是这个用户查询  
    另求怎么查询权限
      

  5.   

    所有对象权限 dba_tab_privs  当前用户对象权限user_tab_privs
      

  6.   

    别的用户会不会也有名字一样的表呢?
    在对表做操作的时候,加上用户名:
    select * from scott.表名;
    另外,从all_tables中查询的时候,加上个条件:
    where owner = 'SCOTT'
      

  7.   

    一张表应该是只有一个owner吧,这个表的owner是scott啊。要给scott用户赋权限的时候就说表不存在
      

  8.   

    另外就是看看这个表是真的表吗?不是view?
      

  9.   


    --正常来讲你执行下面的sql语句 tABLE1 必须要大写才能查到东西
    select * from user_tab_columns where table_name='tABLE1'
    --如果你没有大写这个表名还能查到数据,说明你建表的时候 表名上有双引号--例如:[TEST@myorcl] SQL>create table "tABLE1"(id int);表已创建。[TEST@myorcl] SQL>desc tABLE1;
    ERROR:
    ORA-04043: 对象 tABLE1 不存在
    [TEST@myorcl] SQL>desc "tABLE1";
     名称                                      是否为空? 类型
     ----------------------------------------- -------- ----------------------------
     ID                                                 NUMBER(38)--因此你想查询这个表的话必须在表名上增加双引号。。
      

  10.   

    同意上楼,感觉应该不是权限问题。
    如果是权限问题,就不应当显示在 user_tables 中。
    也不可能是VIEW,user_tables中,不存在VIEW。
      

  11.   

    谢谢13楼奔驰M888!!!已经不记得建表时候是不是加了引号了,但是在insert和drop语句中加上引号后可以正常执行了,所以从结果看是这个问题了,表是实际存在的,也谢谢楼上各位。