IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Oracle Discussion :

rechercher une valeur dans toutes les tables


Sujet :

Oracle

  1. #1
    Membre averti
    Inscrit en
    Juillet 2011
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 21
    Par défaut rechercher une valeur dans toutes les tables
    Bonjour

    j'aurais besoin d'aide, j'ai une base de donnée avec énormément de tables, j'ai besoin de changer une valeur qui a changé, mais elle peut apparaitre n'importe oû.....
    Y aura t il une fonction automatique qui pourrait verifier sur toutes les tables et tout les champs que cette valeur existe dans une table donnée ?

    il faudrais que j'arrive à faire un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * WHERE * LIKE '%NOM%' FROm ALL_TABLES
    merci!!!

  2. #2
    Membre averti
    Inscrit en
    Juillet 2011
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 21
    Par défaut
    Procedure pour une recherche dans toute la base
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
     
        CREATE or REPLACE PROCEDURE SEARCH_DB(SEARCH_STR IN VARCHAR2, TAB_COL_RECS OUT VARCHAR2) IS
          match_count integer;
          qry_str varchar2(1000);
          CURSOR TAB_COL_CURSOR IS 
              SELECT TABLE_NAME,COLUMN_NAME,OWNER,DATA_TYPE FROM ALL_TAB_COLUMNS WHERE DATA_TYPE in ('NUMBER','VARCHAR2') AND OWNER='SCOTT';
              BEGIN  
                FOR TAB_COL_REC  IN TAB_COL_CURSOR
                LOOP
                  qry_str := 'SELECT COUNT(*) FROM '||TAB_COL_REC.OWNER||'.'||TAB_COL_REC.TABLE_NAME|| 
                  ' WHERE '||TAB_COL_REC.COLUMN_NAME;
                   IF TAB_COL_REC.DATA_TYPE = 'NUMBER' THEN
                          qry_str := qry_str||'='||SEARCH_STR; 
                   ELSE
                           qry_str := qry_str||' like '||SEARCH_STR; 
                   END IF;
                           --dbms_output.put_line( qry_str );
                    EXECUTE IMMEDIATE  qry_str  INTO match_count;
                    IF match_count > 0 THEN          
                       dbms_output.put_line( qry_str );
                      --dbms_output.put_line( TAB_COL_REC.TABLE_NAME ||' '||TAB_COL_REC.COLUMN_NAME ||' '||match_count);     
                        TAB_COL_RECS := TAB_COL_RECS||'@@'||TAB_COL_REC.TABLE_NAME||'##'||TAB_COL_REC.COLUMN_NAME;
                    END IF; 
              END LOOP;
         END SEARCH_DB;
    Execution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
      DECLARE
        SEARCH_STR VARCHAR2(200);
        TAB_COL_RECS VARCHAR2(200);
        BEGIN
          SEARCH_STR := 10;
          SEARCH_DB(
            SEARCH_STR => SEARCH_STR,
            TAB_COL_RECS => TAB_COL_RECS
          );
         DBMS_OUTPUT.PUT_LINE('TAB_COL_RECS = ' || TAB_COL_RECS);
         END;
    Source de la solution
    http://stackoverflow.com/questions/2...c-value-oracle

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Rechercher une valeur dans toutes les tables
    Par okdadi dans le forum Informix
    Réponses: 2
    Dernier message: 20/12/2014, 09h27
  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