테이블의 컬럼 내역 query

SELECT A.TABLE_NAME 
     , (SELECT COMMENTS 
         FROM ALL_TAB_COMMENTS 
        WHERE TABLE_NAME = A.TABLE_NAME 
          AND OWNER      = :owner 
       ) AS TABLE_COMMENT 
     , A.COLUMN_NAME 
     , (SELECT COMMENTS 
         FROM ALL_COL_COMMENTS 
        WHERE TABLE_NAME = A.TABLE_NAME 
          AND COLUMN_NAME = A.COLUMN_NAME 
          AND OWNER       = :owner 
       ) AS COLUMN_COMMENT 
     , (CASE WHEN C.COLUMN_NAME IS NOT NULL THEN 'PK' 
             ELSE '' 
          END 
       ) AS PK 
     , A.DATA_TYPE 
     , A.DATA_LENGTH 
     , A.CHAR_LENGTH 
     , A.DATA_PRECISION 
     , A.DATA_SCALE 
     , A.NULLABLE 
     , A.COLUMN_ID 
     , A.DEFAULT_LENGTH 
     , A.DATA_DEFAULT 
  FROM ALL_TAB_COLUMNS A 
   LEFT OUTER JOIN ALL_CONSTRAINTS B 
       ON A.TABLE_NAME = B.TABLE_NAME 
   AND B.CONSTRAINT_TYPE = 'P' 
   AND A.OWNER           = B.OWNER 
   LEFT OUTER JOIN ALL_IND_COLUMNS C 
       ON B.TABLE_NAME = C.TABLE_NAME 
   AND B.INDEX_NAME    = C.INDEX_NAME 
   AND B.OWNER         = C.TABLE_OWNER 
   AND A.COLUMN_NAME   = C.COLUMN_NAME 
 WHERE A.TABLE_NAME    = :tableName 
   AND A.OWNER         = :owner 
ORDER BY A.COLUMN_ID