Como visualizar campos de uma tabela qualquer?

3 respostas
J

Existe alguma funcao, q dado um nome de uma tabela qualquer em string, me retorne os campos da tabela? Existe alguma maneira de identificar quais sao suas chaves primaria ou estrangeira?
Li uma vez que eu poderia resgatar os atributos de uma tabela da seguinte maneira:
select * from NOME_TABELA where 1=2
O ResultSet disso eu “jogaria” em um arquivo XML e dps utilizaria e faria o data binding com o JAXB, existiria outra maneira alem disso? Lembrando q dessa forma, ateh onde eu sei, nao eh possivel saber quais sao suas chaves, se existirem …

3 Respostas

A

Caro colega,
utilizamos esta Query para trazer os nomes das colunas de uma tabela, lembrando que o nosso banco de dados é o DB2, não sei se é a mesma sintaxe para outros bancos, também não sei se é possivel identificar os campos chaves. Se lhe for útil aí está:

SELECT NAME
FROM SYSIBM.SYSCOLUMNS
WHERE TBCREATOR = ‘DB2XXX’ AND TBNAME = ‘TB_CLIENTE’

Obs:

  • Poderá fazer um select * ou select name, type etc…
  • DB2XXX é o nome do banco de dados
  • TB_CLIENTE é o nome da tabela.

Abnel Filho.

D

Fala Jyun, blz?

Tem como vc pegar os campos de uma tabela sim.
Tenta fazer assim:

Vector campos = new Vector();

ResultSetMetaData rsmd = rs.getMetaData();

for (int i = 1; i <= rsmd.getColumnCount(); ++i){
	campos.addElement(rsmd.getColumnName(i));
}

Considerando que vc ja tenha feito uma Query qualquer no banco e guardado o resultado en rs (do tipo ResultSet).
Quanto a retornar quais as chaves primarias eu fico devendo…

Qualquer dúvida posta ai q eu tento explicar melhor, blz?
[]'s
T+

J

Abnelf e Diego, valew pela resposta…
Abnelf, eu estou usando o banco de dados Postgre, entretanto nao vai ser possivel eu implementar o q eu to querendo com essa consulta… mas valew…
Diego, to mexendo com metadata agora e estou conseguindo resgatar os nomes da tabela, eh facil d mexer, valew!! Só nao to conseguindo resgatar o nome de todas as tabelas do banco, nao sei, o codigo parece estar certo mas nao tah aparecendo nada… Outra coisa q eu ainda nao dei uma olhada direito eh se tem alguma funcao pra distinguir quem eh chave primaria ou estrageira, mas tudo bem, obrigadao ae!

Criado 1 de setembro de 2004
Ultima resposta 1 de set. de 2004
Respostas 3
Participantes 3