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


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

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;

更多Oracle相关信息见Oracle 专题页面 http://www.bkjia.com/topicnews.aspx?tid=12

相关内容