Extraído do site: www.codigofonte.com.br

Com essa Query é possível listar os campos de uma tabela do no ORACLE, basta substituir o TBL_TESTE pelo nome da tabela/view que você queira.

PS: Só serão listadas as tabelas do USER as tabelas de sistemas não serão visíveis nesse exemplo.

SELECT    
    COLUNAS.COLUMN_NAME AS COLUNA,   
    COLUNAS.DATA_TYPE AS TIPO,   
    DECODE(COLUNAS.DATA_PRECISION, NULL, COLUNAS.CHAR_COL_DECL_LENGTH, COLUNAS.DATA_PRECISION)  AS TAMANHO,   
    COLUNAS.NULLABLE AS EH_NULO   
    
FROM    
    USER_TABLES TABELA,   
    USER_TAB_COLUMNS COLUNAS   
WHERE    
    -- JOINS    
    TABELA.TABLE_NAME = COLUNAS.TABLE_NAME   
    AND TABELA.TABLE_NAME = 'TBL_TESTE'  
SELECT 
    COLUNAS.COLUMN_NAME AS COLUNA,
    COLUNAS.DATA_TYPE AS TIPO,
    DECODE(COLUNAS.DATA_PRECISION, NULL, COLUNAS.CHAR_COL_DECL_LENGTH, COLUNAS.DATA_PRECISION)  AS TAMANHO,
    COLUNAS.NULLABLE AS EH_NULO
 
FROM 
    USER_TABLES TABELA,
    USER_TAB_COLUMNS COLUNAS
WHERE 
    -- JOINS 
    TABELA.TABLE_NAME = COLUNAS.TABLE_NAME
    AND TABELA.TABLE_NAME = 'TBL_TESTE'