|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : février 2007 Messages : 28 ![]() |
Bonjour tout le monde
alors alors, voici ce que j'utilise : - base postgres - driver postresql avec Java Ce que j'essaye de faire en vain, c'est obtenir la table d'une colonne qui provient du résultat d'une requête. Je cherche une solution sans avoir à parser ma requête en tant que chaîne de caractère. Si j'ai la requête : Code :
SELECT col1, col2, col3 FROM tab1,tab2 j'ai voulu essayer la classe ResultSetMetaData, mais cela ne le permet pas sur une telle requête. je vous remercie d'avance si vous avez une idée ou une solution |
|
|
00
|
|
|
#2 | ||
|
Invité de passage
![]() Inscription : décembre 2007 Messages : 2 ![]() |
Faudrait savoir ce que tu essais de faire. En principe, rien n'empêche le même nom de colonne d'être utilisé dans deux tables différentes. En fait, le vrai nom unique d'une colonne est composé du nom du schemas, de la table et du nom de la colonne (eg, public.employee.name).
Mais si tu veux juste accéder aux noms des colonnes (qui peuvent être des alias), tu peux les extraires des métadonnées du ResultSet (J'ai piqué ce code ici : http://www.devx.com/dbzone/Article/27992/1954?pf=true) Code :
pour avoir les tables : select * from pg_tables pour avoir les colonnes : select * from pg_attribute (en faisant une jointure avec pg_tables, on a la vue complète) |
||
|
|
00
|
|
|
#3 | ||
|
Invité régulier
![]() Inscription : février 2007 Messages : 28 ![]() |
oups désolé de ce retour tardif. merci en tout cas de ce début de précision
En fait j'ai besoin d'une information de ce ResultSetMetaData, et la fonction dont j'ai besoin est getTableName(int i) qui va en fait retourner la table d'appartenance de la colonne située à l'indice i. Hors cette fonction renvoie (dans le cas de psotgresql) une chaîne vide "". Le contexte dans lequel j'utilise cela, c'est avec deux tables qui ont une colonne qui porte le même nom. Dans un cas c'est la clef primaire de la table, dans l'autre cas c'est la clef étrangère de la table. Ce à quoi cela va me servir, c'est de savoir si la colonne que je suis en train de traiter avec mon ResultSetMetaData, c'est de savoir si elle provient de la table où elle est clef étrangère, ou de la table où elle est clef primaire. Code :
Pour info, j'ai déjà le script SQL qui me permet avec le nom d'une colonne et le nom d'une table de savoir si c'est une clef primaire ou étrangère avec les tables systèmes. Dans tous les cas, la fonction getTableName() renverra toujours une chaîne vide. Donc je ne sais pas comment faire ... merci d'avance pour d'autres retours |
||
|
|
00
|
|
|
#4 |
|
Invité régulier
![]() Inscription : février 2007 Messages : 28 ![]() |
personne n'a jamis essayé une telle chose ?
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com