各位大虾,下午好~
我想问的就是如果我不知道我已经连接的这个数据库里有哪些存在的表(table),而我想知道它们是什么名字,那我该怎么表达这句呢?
PS:我要在pl/sql里的sql窗口中使用这句语言

解决方案 »

  1.   

    select table_name from user_tables
      

  2.   

    这句我也用了,但是为什么查出来的信息只有20几条啊,也就是只有20几个表?而且这些表的用户都是users组的?没有显示system组的?
      

  3.   

    那个是查询当前用户下的表的
    如果你要查当前用户能访问的所有表用all_tables
    select table_name from all_tables
      

  4.   

    Select * From user_all_tables
      

  5.   

    Select * From user_all_tables
      

  6.   

    $是系统表。你不必关心。可以在DBA权限授权ALL_TABLES给当前用户。该视图中的owner为表属于哪个用户。
      

  7.   

    不管是user_all_tables 还是all_tables 还是all_all_tables
    结果都是诸如SEG$ CLU$之类的表名,而且它们的owner都是sys,它们的tablespace_name也都是system...好像这个问题问得有点白了?
      

  8.   

    SELECT   TABLE_NAME   
      FROM   ALL_TABLES   
      WHERE   TABLESPACE_NAME   <>'SYSTEM'   
      

  9.   

    user_tables,ALL_TABLES都是数据字典,前者查询当前用户的表,后者查询当前用户的表和其它用户授权给当前用户的表
    所有只要从其它用户把相应的表授权过来,用ALL_TABLES就能查到
      

  10.   

    哦,是我没有完全搞清楚,现在知道了,结果是1.Select * From user_all_tables  131条2.Select * From user_tables      131条3.Select * From all_tables       1621条4.select * From all_all_tables   1664条现在你们也都看出来了,那就是:为什么1和2为什么是一样,3和4那为什么不一样呢?我追加分数