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 é_NULO
FROM
USER_TABLES TABELA,
USER_TAB_COLUMNS COLUNAS
WHERE
-- JOINS
TABELA.TABLE_NAME = COLUNAS.TABLE_NAME
AND TABELA.TABLE_NAME = 'CONTRATOS'
Obrigado victorhugomuniz, mas gostaria de algo mais "automatico" e fácil, essa tabela possui 7 campos, então imagine "criar" 7x esse Select pra traduzir esses campos.
Select colunas.column_name As "codigo do cliente",
colunas.data_type As "nome do cliente",
decode(colunas.data_precision, Null, colunas.char_col_decl_length, colunas.data_precision) As "tamanho do campo 1",
colunas.nullable As "assim por diante"
From user_tables tabela,
user_tab_columns colunas
Where
-- JOINS
tabela.table_name = colunas.table_name
And tabela.table_name = 'CONTRATOS'
Você poderia descrever o que pediram para você fazer em alto nível, na necessidade de negócio, em vez de perguntar como implementar a solução da forma que você está pensando.
Descreva o problema, não a solução que você pensou para ele.
SELECT COLUNAS.COLUMN_NAME AS COLUNA,
NOME_CAMPO.COMMENTS AS NOME,
COLUNAS.DATA_TYPE AS TIPO,
DECODE(COLUNAS.DATA_PRECISION,
NULL,
COLUNAS.CHAR_COL_DECL_LENGTH,
COLUNAS.DATA_PRECISION) AS TAMANHO,
COLUNAS.NULLABLE AS é_NULO
FROM USER_TABLES TABELA
LEFT JOIN USER_TAB_COLUMNS COLUNAS ON (TABELA.TABLE_NAME = COLUNAS.TABLE_NAME)
LEFT JOIN USER_COL_COMMENTS NOME_CAMPO ON (COLUNAS.TABLE_NAME = NOME_CAMPO.TABLE_NAME)
WHERE TABELA.TABLE_NAME = 'CONTRATOS'
Tentei fazer INNER JOIN, LEFT JOIN, RIGHT JOIN e nenhum deles trouxe corretamente os dados
SELECT DISTINCT(COLUNAS.COLUMN_NAME) AS COLUNA,
NOME_CAMPO.COMMENTS AS NOME
FROM USER_TABLES TABELA, USER_TAB_COLUMNS COLUNAS, USER_COL_COMMENTS NOME_CAMPO
WHERE TABELA.TABLE_NAME = 'CONTRATOS'
AND TABELA.TABLE_NAME = COLUNAS.TABLE_NAME
AND (COLUNAS.COLUMN_NAME = NOME_CAMPO.COLUMN_NAME
AND NOME_CAMPO.TABLE_NAME = TABELA.TABLE_NAME)