Liste des tables d'oracle...

cs_cdryk Messages postés 6 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 31 mars 2008 - 29 juin 2004 à 15:37
cs_cdryk Messages postés 6 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 31 mars 2008 - 29 juin 2004 à 18:17
Mon code :

connect = DriverManager.getConnection(url,login,pass);
metadata = connect.getMetaData();
res = metadata.getTables("nom_base", null, null, null);
while (res.next()) {
System.out.println(" >> Tables : "+res.getString("TABLE_NAME"));
}

Le probleme est que ce bout de code me liste toutes les données qui se trouve sur le serveur je pense...
Je liste vraiment tout...

/oracle/...
/java/...
/javax/...

Et pas que les tables... Donc pourriez vous m'expliquer a partir de l'objet : DatabaseMetaData
Comment je peux lister les tables pour ensuite pouvoir lister pour chacune de ces tables tous leur champs. (Ca j'ai reussi pour une donc je suppose qu'en faisant une boucle je peux avoir les champs de chacune d'entre elle).
Je m'embrouille entre tout... ResultSet, ResultSetMetaData etc... alors la je commence a ne plus y voir clair... :)

Merci d'avance... ;)

Rappel : Je bosse avec une appli java sur une base de données oracles et je veux simplement une solution pour lister les tables qui sont présentes dans oracle (toutes pour l'instant et sous la forme que vous voulez... je m'en fiche) mais je veux pouvoir ensuite parcourir le vector, resultset, array ou autre qui contient les noms de ces tables pour justement chacun de ces noms lister ensuite les champs.

Merci encore !

2 réponses

wargre Messages postés 649 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 9 septembre 2004 7
29 juin 2004 à 16:26
normallement t'as pas besoin de catalog dans ton getTables()
essais avec getTables(null,null,null,null);
0
cs_cdryk Messages postés 6 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 31 mars 2008
29 juin 2004 à 18:17
J'ai trouvé ;)

En fait dans getTables... on doit bien mettre :
getTables("nom_base",null,null,lesTypesDeTables);

avec :
String [] lesTypesDeTables = new String[1];
lesTypesDeTables[0] = "TABLE";

et plus si affinités...
String [] lesTypesDeTables = new String[2];
lesTypesDeTables[0] = "TABLE";
lesTypesDeTables[1] = "VIEW";

etc...

Et la c'est bon... n'empeche qu'il en liste quelques unes dont je ne connais pas la provenance (ca ne peut pas etre des tables systemes car pour avoir les tables systemes il faut mettre TABLE_SYSTEM ou SYSTEM_TABLE dans lesTypesDeTables)

Voilou ;) pour l'info
0