Bonjour,
Excusez moi si je suis loin d'être bon en BDD, mais j'aimerais savoir comment je pourrais récupérer le nom de toutes mes tables de ma BDD en faisant un SELECT.
Merci d'avance
Bonjour,
Excusez moi si je suis loin d'être bon en BDD, mais j'aimerais savoir comment je pourrais récupérer le nom de toutes mes tables de ma BDD en faisant un SELECT.
Merci d'avance
Tu devrais trouver ton bonheur dans la table SYSTABLES
oui effectivement, un ptit "SELECT * FROM SYSIBM.SYSTABLES" marche nikel.
J'aurais bien une autre question.
En fait je travail sur Websphere Commerce et la Base de données qui est livré avec...
Faudrait que je fasse une requête comme suit :
Select <noms des tables> where <la valeur d'un élément dans une des colonnes de la bdd> = <une valeur>
Une solution?
Je suis vraiment largué en bdd c'est dommage...
Et UNEVALEUR peut -être remplacée par :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT TABLE_NAME FROM SYSCOLUMNS WHERE COLUMN_NAME = UNEVALEUR
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT NOMCOL FROM NOMTABLE WHERE COL1 = VAL1
En fait mon problème est un peu + compliqué (ou pas), mais la solution que tu me donnes ne correspond pas à mon problème.
Mon problème est le suivant:
J'ai besoin de trouver toutes les tables de ma base de données qui contiendrait dans une de leurs colonnes un élément égale à une valeur.
Exemple : soit le nombre 5689, je souhaite savoir le nom des tables qui contiennent cette valeur dans une de leurs colonnes.
Comment puis-je formé la requête? Est ce possible?
Il te faut donc recupérer le nom de toutes les colonnes de la table SYSCOLUMNS pour les itérer dans la clause WHERE
Collègue çà te donne le droit concrètement de consulter tes cours de SQL ou de t'adresser au forum dédié au SQL peut êtreEnvoyé par Mynautor
J'ai juste le sentiment que ta problématique n'est pas spécifique à DB2 mais je peux me tromper
J'avoue que je n'ai pas non plus vraiment le temps de te pondre la requête car je bosse sur tout autre chose à l'heure où je t'ecris, désolé pour mes pistes "non concrètes"
Cela me parait difficile en SQL pur. En fait tu dois récupérer la liste des tables. ça tu l'as déjà. ensuite comme Neguib te l'a dit, tu dois pour chaque table récpérer dans la table SysColumns le nom des différentes colonnes. Je pense de mémoire que c'est également la que tu pourra récupérer le type. En effet tu ne pourra rechercher dans la table que sur les colonnes qui ont le même typ que ton paramêtre. Donc pour chaque colonne ainsi identifiée, tu pourras réaliser ta recherche avec un count par exemple. Essaie de faire un seul Where pour l'ensemble des colonnes d'un même tables. Je ne vois pas comment tu pourrais éviter de faire cela dans une procédure stockée.
Ne pense pas que les membres de l'équipe ne sont pas interèssés par tes problèmes mais nous sommes tous bénévoles et avons aussi une activité professionnelle prenante. Nous répondons toujours de notre mieux dans les temps dont nous disposons à un moment prècis. Nous sommes aussi en droits d'espérer que de votre côté vous mettiez tout en oeuvre pour trouver la solution à votre problème et pas simplement d'attendre que la solution tombe du ciel.Envoyé par Mynautor
Si tu as 2 tables de 2 colonnes dans ta base et qu'en plus elles sont pas trop grosses ça devrait le faire. Dans le cas contraire tu risques de te faire assassiner par ton admin...
Par ce que si j'ai bien compris cette fois-ci ce que tu veux c'est que ta requête te dise "c'est dans la colonne toto de la table titi que j'ai trouvé la valeur 1234".
C'est possible techniquement mais c'est sûrement pas une bonne idée.
Quel est l'interêt de cette requête ?Envoyé par Mynautor
A quelle fonctionnalité doit-elle répondre ?
Et bien tout simplement, j'ai une modification a faire pour un client, une maintenant si tu préfères, et j'ai repris un site de fou en websphere commerce, et je ne sais pas dans quelles tables "taper"... alors je cherche directement une valeur dans les tables.
la bdd comporte + de 200 tables ;D
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager