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'