Oracle用SQL语句实现desc函数功能

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

SELECT A.COLUMN_NAME 字段名,
        DATA_TYPE ||DECODE(DATA_TYPE,'DATE','','CLOB','','BLOB','','BFILE','','FLOAT','','LONG RAW','','LONG','','RAW','(' || TO_CHAR(DATA_LENGTH) || ')',

               (DECODE(SIGN(INSTR(DATA_TYPE, 'CHAR')),1,
                 '(' || TO_CHAR(DATA_LENGTH) || ')',(DECODE(SUBSTR(DATA_TYPE, 1, 9),
                  'TIMESTAMP', '',
                 (DECODE(NVL(DATA_PRECISION, -1), -1,
                  '',(DECODE(NVL(DATA_SCALE, 0), 0,
                  '(' || TO_CHAR(DATA_PRECISION) || ')', '(' || TO_CHAR(DATA_PRECISION) || ',' ||
                 TO_CHAR(DATA_SCALE) || ')'))))))))) 字段类型,
        A.NULLABLE 允许为空,
        A.DATA_DEFAULT 默认值,
        B.COMMENTS 字段注释
   FROM ALL_TAB_COLUMNS A,
        ALL_COL_COMMENTS B
  WHERE B.TABLE_NAME=A.TABLE_NAME
  AND A.OWNER=B.OWNER
  AND A.COLUMN_NAME=B.COLUMN_NAME
  AND A.TABLE_NAME =UPPER( 'TABLE_NAME')
    AND A.OWNER =UPPER( 'USER')
  ORDER BY COLUMN_ID;