create table TEST 

TESTID varchar(10) not null, --编号
TESTNAME varchar(50) default '', --名称
REMARK varchar(150) default '', --备注primary key (TESTID) 
)
oracle 中 建了一个简单的表。
我现在想要一条语句 能够查询出这张表中的表结构。
如: 这个表所属库(tableSpace_name)、表名称(test)、表中的每个字段的类型(varchar)、字段长度(10、50、150)、每个字段的中文名(貌似是comments.  编号、名称、备注等)、我找了几条语句都查不全:select * from sys.user_tab_columns a where a.table_name='TEST'select * from user_constraints uu where uu.table_name='TEST'主要的是中文名的查询 找不到。求高手 指点

解决方案 »

  1.   


    select column_name,data_type,data_length,data_precision,data_scale  
    from user_tab_columns where table_name='EMP';  
    COLUMN_NAME                    DATA_TYPE                       DATA_LENGTH DATA_PRECISION DATA_SCALE  
    ------------------------------ ------------------------------- ----------- -------------- ----------  
    EMPNO                          NUMBER                                   22              4          0  
    ENAME                          VARCHAR2                                 10                  
    JOB                            VARCHAR2                                  9                  
    MGR                            NUMBER                                   22              4          0  
    HIREDATE                       DATE                                      7                  
    SAL                            NUMBER                                   22              7          2  
    COMM                           NUMBER                                   22              7          2  
    DEPTNO                         NUMBER                                   22              2          0  
      

  2.   

    想查询表的comments,查询视图:user_tab_comments
      

  3.   

    表的备注说明: user_tab_comments
    栏位的备注说明: user_col_comments
      

  4.   


    嗯 我查询了 得出的是每个表的 comments (即每个表的中文名) 现在我是要表中的每个字段的comments(中文名)。这个不知道怎么搞、
      

  5.   


    select t.TABLE_NAME,t.COLUMN_NAME,t.DATA_TYPE,t.DATA_LENGTH from user_tab_columns t where t.TABLE_NAME='SYS_TEST'
    却好多项啊
      

  6.   

    select a.tablespace_name,
           a.table_name,
           b.column_name,
           b.data_type,
           b.data_length,
           c.comments
      from user_tables a, user_tab_cols b, user_col_comments c
     where a.table_name = b.table_name
       and b.column_name = c.column_name
       and b.table_name=c.table_name
       and a.table_name=table_name
      

  7.   


    对了 你最后那个 and a.table_name='SYS_TEST'(传如我想查询的表 对吧?)只查到了 一条记录(第一个字段的信息)。。这张表中 有 3个字段啊(要3条记录的)、
      

  8.   

    SELECT a.TABLE_NAME,
           a.TABLESPACE_NAME,
           b.COLUMN_NAME,
           b.DATA_TYPE,
           b.DATA_PRECISION,
           b.DATA_SCALE,
           c.comments
      FROM user_tables a, user_tab_columns b, user_col_comments c
     WHERE a.TABLE_NAME = b.TABLE_NAME
       AND a.TABLE_NAME = c.table_name
       AND b.COLUMN_NAME = c.column_name
       AND a.TABLE_NAME = upper('&table_name');