CREATE TABLE AB
   (AA VARCHAR2(22))               CREATE TABLE ABC1
   ( ID NUMBER(22), 
NAME VARCHAR2(20) NOT NULL ENABLE, 
 PRIMARY KEY (ID));
    
    
     --这是列出来的两个表,还有很多。我想查看出表结构,得出如下结果          
     表名   列名           类型             是否主健       是否为空
     AB     AA VARCHAR2(22)   否         是
    ABC     ID NUMBER(22)   是         否
    ABC     NAME VARCHAR2(20)   否         否

解决方案 »

  1.   

    desc TABLENAME describe TABLENAME
      

  2.   

    desc TABLENAME 是显示一个表,我要显出上百张表
      

  3.   

    --这是我写的,有问题,请帮忙改一下
       SELECT B.TABLE_NAME 表名,b.column_name 字段代码,
           (select a.comments
              from user_col_comments a
             where a.table_name =B.TABLE_NAME
               and a.column_name = b.column_name) 字段名称,
           b.data_type || '(' || b.DATA_LENGTH || ')' 字段类型,
           decode(b.column_name, c.column_name, '是', '否') 是否主键,
           decode(b.nullable, 'Y', '是', '否')  是否为空
      FROM user_tab_columns b,
           ( SELECT column_name FROM user_cons_columns A
            WHERE EXISTS(SELECT constraint_name FROM user_constraints B 
                     where constraint_type = 'P')) C
      

  4.   

    select tc.table_name 表名,
           tc.column_name 列名,
           tc.data_type 类型,
           DECODE(c.constraint_type, 'P', '是', '否') 是否主健,
           DECODE(TC.NULLABLE, 'Y', '是', '否') 是否可为空
      from USER_TAB_COLS tc, user_constraints c, user_cons_columns cc
     where tc.table_name = c.table_name
       and c.constraint_name = cc.constraint_name
      

  5.   

    查看是否主键:SQL> select CONSTRAINT_TYPE from dba_constraints where table_name = 'ABC1';当值为P时,是主键约束.
      

  6.   

    wfqqwer5213 写的不对呀,一个表中的字段重复了好多次
      

  7.   

    wfqqwer5213 查出来的是笛卡尔积了。
      

  8.   

    select tc.table_name 表名,
           tc.column_name 列名,
           tc.data_type 类型,
           decode(p.column_name, null, '否', '是') 是否主健,
           DECODE(TC.NULLABLE, 'Y', '是', '否') 是否可为空
      from USER_TAB_COLS tc,
           (select c.table_name, cc.column_name
              from user_constraints c, user_cons_columns cc
             where c.constraint_name = cc.constraint_name
               and c.constraint_type = 'P') P
     where tc.table_name = p.table_name(+)
       and tc.column_name = p.column_name(+)
      

  9.   

    试下select tc.table_name 表名,
           tc.column_name 列名,
           tc.data_type 类型,
           decode(p.column_name, null, '否', '是') 是否主健,
           DECODE(TC.NULLABLE, 'Y', '是', '否') 是否可为空
      from USER_TAB_COLS tc,
           (select c.table_name, cc.column_name
              from user_constraints c, user_cons_columns cc
             where c.constraint_name = cc.constraint_name
               and c.constraint_type = 'P') P
     where tc.table_name = p.table_name(+)
       and tc.column_name = p.column_name(+)
      

  10.   

    wfqqwer5213 这语句怎么这么慢哟,我都跑了快10分钟了。
      

  11.   

    wfqqwer5213语句能查出来了,现在查出来的字段是顺序是乱的,如何按表中字段顺序显示呢?
      

  12.   

    select tc.table_name 表名,
           tc.column_name 列名,
           tc.data_type 类型,
           decode(p.column_name, null, '否', '是') 是否主健,
           DECODE(TC.NULLABLE, 'Y', '是', '否') 是否可为空
      from USER_TAB_COLS tc,
           (select c.table_name, cc.column_name
              from user_constraints c, user_cons_columns cc
             where c.constraint_name = cc.constraint_name
               and c.constraint_type = 'P') P
     where tc.table_name = p.table_name(+)
       and tc.column_name = p.column_name(+)
    order by tc.table_name,tc.column_name