RT…今天建了个表,但是在sql plus 下直接用表名没法直接查询,只能通过"用户名"."表名"的方法查询。即使用我建的用户登陆也不行。
但是scott下的表却可以直接查。这是为什么???高手指点……

解决方案 »

  1.   


    Oracle 每个user的schema是分开的,如果要访问其他的user的schema里的对象,需要通过user.对象名的形式,
    不过你提到的,即使用我建的用户登陆也不行。 这个倒是很奇怪的,你可以把你建表的语句和你查询的语句。帖上来看看,
      

  2.   


    呵呵,你用哪个用户建的表,查下dba视图里面是哪个用户建的表就可以了。
      

  3.   

    你用system登陆进去,执行select from dba_tab_cols 查询下表的状态就知道是哪个用户啦。例如:SQL> select dtc.owner, dtc.table_name, dtc.column_name, dtc.data_type from dba_tab_cols dtc where dtc.table_name='A';OWNER                          TABLE_NAME                     COLUMN_NAME                    DATA_TYPE
    ------------------------------ ------------------------------ ------------------------------ --------------------------------------------------------------------------------
    SCOTT                          A                              XH                             VARCHAR2
    SCOTT                          A                              DZDAH                          VARCHAR2
    SCOTT                          A                              RQ                             DATE
    SCOTT                          A                              BEGIN_DATE                     DATE
    SCOTT                          A                              END_DATE                       DATE
      

  4.   

    我是用OEM的图形界面建的表。
      

  5.   


    你用system登陆进去,从数据字典dba_tables查询下表知道是哪个用户啦。例如:SQL> select table_name, owner from dba_tables where upper(table_name) = upper('T1');TABLE_NAME                     OWNER
    ------------------------------ ------------------------------
    T1                             TEST1SQL>
      

  6.   


    在oem里面也可以对数据字典进行查询的。
      

  7.   

    你在sqlplus登录的用户名和"用户名"."表名"中的用户名一样么?如果一样就不应该出现你说的问题。
      

  8.   

    看一下dba_tables 中的你的表的 owner 是不是有小写字母