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 :

Recherche des dépendances


Sujet :

Oracle

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 98
    Par défaut Recherche des dépendances
    Bonjour,

    J'ai une autre question :

    Je dois fournir pour une table passée en paramètre les noms éventuels des "tables filles" et des "clés étrangères", on m'a dit que la vue utile était user_contraints. Si vous savez faire, moi je ne sais pas, je débute en oracle. Merci d'avance.

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Par défaut
    Vous pouvez jeter un coup d'oeil à ce script là:http://oracle.developpez.com/sources...active_fk_user. Vous pouvez aussi, dans un schéma vide, créer des tables et des contraintes et analyser le contenu de USER_CONSTRAINTS après chaque création d'objet pour comprendre ce qui contient vraiment cette vue.

  3. #3
    Rédacteur

    Inscrit en
    Septembre 2004
    Messages
    626
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 626
    Par défaut
    Il y a plusieurs types de dépendances.

    Si par exemple tu as une table qui est utilisé dans une procédure, la procédure dépend de ta table. Tu trouveras ce type de dépendances dans USER/ALL/DBA_DEPENDENCIES.


    Laly.
    In the heart of the truly greats, perfection is never achieved but endlessly pursued.

    Mon article sur les fonctions analytiques d'Oracle (calcul de moyennes mobiles, de quartiles et bien d'autres...)

  4. #4
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Pour trouver la liste des clés étrangères d'une table, tu peux essayer de faire quelque chose comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    select table_name fille, constraint_name nom_cle_etrangere
    from user_constraints
    where constraint_type = 'R'
    and  r_constraint_name in (select constraint_name 
                              from user_constraints 
                              where table_name = 'TABLE_MERE');
    NB : pour avoir les colonnes composant la clé étrangère, c'est la table USER_CONS_COLUMNS.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 98
    Par défaut
    Merci, décidement, vous trouvez à tout les coups. Un expert, maintenant je sais ce que cela veut dire , par contre je dois fournir pour une table passée en paramètre (cela veut dire que je dois au lancement du script saisir à la demande de sql plus le nom d'une table, et je dois obtenir en réponse les noms éventuels des "tables filles" et des "clés étrangères ? Comment faire cela avec votre solution ?

    Bravo et merci


    Citation Envoyé par plaineR
    Pour trouver la liste des clés étrangères d'une table, tu peux essayer de faire quelque chose comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    select table_name fille, constraint_name nom_cle_etrangere
    from user_constraints
    where constraint_type = 'R'
    and  r_constraint_name in (select constraint_name 
                              from user_constraints 
                              where table_name = 'TABLE_MERE');
    NB : pour avoir les colonnes composant la clé étrangère, c'est la table USER_CONS_COLUMNS.

  6. #6
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Sous SQL*Plus :Solution "propre" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    accept p_nom_table prompt "Nom de la table : "
    select table_name fille, constraint_name nom_cle_etrangere
    from user_constraints
    where constraint_type = 'R'
    and  r_constraint_name in (select constraint_name 
                              from user_constraints 
                              where table_name = '&p_nom_table');
    ou plus simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    select table_name fille, constraint_name nom_cle_etrangere
    from user_constraints
    where constraint_type = 'R'
    and  r_constraint_name in (select constraint_name 
                              from user_constraints 
                              where table_name = '&nom_de_la_table');

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 98
    Par défaut
    Que dire EXPERTISSIMO


    Citation Envoyé par plaineR
    Sous SQL*Plus :Solution "propre" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    accept p_nom_table prompt "Nom de la table : "
    select table_name fille, constraint_name nom_cle_etrangere
    from user_constraints
    where constraint_type = 'R'
    and  r_constraint_name in (select constraint_name 
                              from user_constraints 
                              where table_name = '&p_nom_table');
    ou plus simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    select table_name fille, constraint_name nom_cle_etrangere
    from user_constraints
    where constraint_type = 'R'
    and  r_constraint_name in (select constraint_name 
                              from user_constraints 
                              where table_name = '&nom_de_la_table');

Discussions similaires

  1. Recherche des dépendances
    Par Négrier dans le forum Outils
    Réponses: 4
    Dernier message: 07/09/2007, 14h49
  2. Recherche des dépendances des modules
    Par slowpoke dans le forum Mandriva / Mageia
    Réponses: 9
    Dernier message: 11/12/2003, 08h49
  3. Recherche des exemple d'utilisation
    Par lemme dans le forum Merise
    Réponses: 2
    Dernier message: 26/02/2003, 13h00
  4. recherche des algorythmes pour images 2d
    Par exxos dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 24/05/2002, 13h46
  5. recherches des cours ou des explications sur les algorithmes
    Par Marcus2211 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 19/05/2002, 22h18

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