1. #1
    Candidat au Club
    Inscrit en
    juillet 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : juillet 2008
    Messages : 3
    Points : 4
    Points
    4

    Par défaut Rechercher une valeur dans toutes les tables

    Bonjour,

    tout est dans le titre, je veux savoir comment faire pour rechercher une valeur dans toutes les tables de ma base.

    exemple : je recherche dans toutes les tables toutes les colonnes qui contiennent la valeur "X"
    le résultat doit être le nom de la table et la colonne (champ) qui contient cette valeur


    merci

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Ingénieur d'études décisionnel
    Inscrit en
    mai 2002
    Messages
    7 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'études décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 7 253
    Points : 22 037
    Points
    22 037

    Par défaut

    Ceci ne peut être effectué qu'en construisant dynamiquement la requête en se basant sur le dictionnaire.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre habitué
    Homme Profil pro
    Achitecte Informix SGBD et applications - IBM Champion - Data Management - Board of Directors IIUG
    Inscrit en
    octobre 2010
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Achitecte Informix SGBD et applications - IBM Champion - Data Management - Board of Directors IIUG
    Secteur : Conseil

    Informations forums :
    Inscription : octobre 2010
    Messages : 105
    Points : 162
    Points
    162

    Par défaut

    La méthode citée par blackstreet est la bonne, mais suivant la taille de tes tables, le nombre de colonnes, elle peut te prendre un sacré bout de temps...

    Si cette opération est du type 'one-shot', et si tu as de la place disque, je ferais un dbexport de la base et je cherche par commande unix, un truc du style

    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    dbexport -d nom_de_ta_base
    cd nom_de_ta_base.exp
    find . -name "*.unl" -exec egrep -n "\|valeur_recherchée\|" {} \;  > fichier
    avantages: en une seule passe par table, tu recherches dans toutes les colonnes.
    le programme de recherche est déjà écrit ci-dessus
    inconvénient: le dbexport peut prendre du temps, mais ca sera je pense moins que le temps que tu mettra a écrire le programme qui analyse les tables systables et syscolumns et qui PREPARE et EXECUTE une requête séquentielle par table/colonne.


    Si ta base n'est pas trop grosse, c'est à dire si elle ne met pas 15 heures à exporter, je pense que ce sera plus rapide que de lancer autant de requêtes
    en lecture séquentielle sur toutes les colonnes de ta table...

    Si tu as la version 11.50 > xC4 tu peux même décharger dans des tables externes, ça ira encore plus vite.

    Oui je sais, c'est pas beau, mais on n'a pas que cela à faire. Il faut savoir faire des entorses au règlement parfois.
    Tu peux aussi venir visiter le groupe d'utilisateurs Informix Francophone sur Linkedin


    Eric

Discussions similaires

  1. rechercher une valeur dans toutes les tables
    Par touness dans le forum Débuter
    Réponses: 1
    Dernier message: 01/12/2011, 11h58
  2. recherche de texte dans toutes les tables d'une DATABASE
    Par pcouas dans le forum Langage SQL
    Réponses: 1
    Dernier message: 23/09/2010, 08h43
  3. Réponses: 1
    Dernier message: 06/11/2009, 16h54
  4. Rechercher une donnée dans toutes les tables d'une BDD
    Par TheYoMan dans le forum Paradox
    Réponses: 2
    Dernier message: 23/10/2008, 20h24
  5. Rechercher une valeur dans un autre table
    Par zangel dans le forum Access
    Réponses: 4
    Dernier message: 10/09/2008, 01h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo