Ho un problema...JDBC è rotto
Battute ha parte, ho la necessita di ottenere una serie di informazioni (es: se la colonna di una tabella è chiave/indice) da diversi Db (es: Postgre, DB2, ecc..) e non conoscendo librerie particolari che facciano ciò, ho deciso di affidarmi alla vecchia e cara JDBC.
Immagino che queste informazioni si trovino nel catalogo del Db in questione e la prima cosa che ho cercato di fare è ottenere la lista dei cataloghi presenti.
Il problema è che non ci sto riuscendo

Ho provato prima con:
codice:
ResultSet listaCataloghi = con.getMetaData().getCatalogs();       	
       while(listaCataloghi.next())
        	System.out.println("TABLE_CAT - " + listaCataloghi.getString("TABLE_CAT"));
..ma restituisce il nome dell'istanza del database..

Allora ho provato con:
codice:
ResultSet listaCataloghi = con.getMetaData().getSchemas();
        while(listaCataloghi.next()) 		
        	System.out.println("TABLE_SCHEM - " + listaCataloghi.getString("TABLE_SCHEM"));   	
        while(listaCataloghi.next()) {	      		
        	System.out.println("TABLE_CATALOG - " + listaCataloghi2.getString("TABLE_CATALOG"));
        	}
TABLE_SCHEM l'ho messo giusto per vedere se da getSchemas arivassero informazioni corrette, infatti arrivano i nomi degli Schema. Il dubbio mi è venuto perchhè invece da TABLE_CATALOG non ottengo nulla...nemmeno "null"... mi dice direttamente:
org.postgresql.util.PSQLException: Colonna denominata «TABLE_CATALOG» non è presente in questo «ResultSet».
Eppure mi sto basando sulle api corrette ovvero:
http://download.oracle.com/javase/1....tSchemas%28%29

Ho provato infine a passare da una tabella facendo:
codice:
ResultSet WSrs = con.getMetaData().getTables(null, schema, tableName, null);
        while(WSrs.next())
        	System.out.println("TABLE_CAT - " + WSrs.getString("TABLE_CAT"));
ma questa volta dove mi aspetto le info del catalogo, mi arriva effettivamente null.

Ora non so più che fare.....

Potete darmi una mano????
Grazie mille!!!