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 :

Lister les dépendances fonctionnelles


Sujet :

Oracle

  1. #1
    Nouveau membre du Club Avatar de _ChToM_
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 111
    Points : 27
    Points
    27
    Par défaut Lister les dépendances fonctionnelles
    Slt,

    voila, je débarque sur Oracle. Dans le cadre de mon stage, je voudrais savoir s'il est possible de lister toutes les dépendances fonctionnelles issues d'une table.

    Je me prends à rêver qu'il existe une méthode miracle...

    Je dois sortir de mes nuages et me taper toutes les tables (juste 200) ou alors il y a plus simple???

    Merci d'avance pour le coup de main.

  2. #2
    Membre habitué
    Inscrit en
    Août 2006
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 181
    Points : 166
    Points
    166
    Par défaut
    fait un select sur user_dependencies ou si tu veux all_dependencies

  3. #3
    Nouveau membre du Club Avatar de _ChToM_
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 111
    Points : 27
    Points
    27
    Par défaut
    Slt,

    merci pour la réponse.

    J'ai essayé de le faire mais ca ne me donne pas grand chose d'exploitable.

    En fait, je vais expliquer mon problème, ca sera peut etre mieux.

    Voila, je fais un programme en VB6 qui traite des informations issues d'une base MySQL pour les reinjecter dans une base Oracle.

    Dans cette base Oracle, il y a pas mal de tables.

    J'ai créé un formulaire pour éditer les tables, et j'ai rajouté un bouton Supprimer.

    Je voudrais anticiper le probleme qui se pose si je veux supprimer un élément dans ma table alors qu'il est lié à une autre.

    Comme je l'ai dit, je débute (mais alors vraiment le tout début hein) sous Oracle et je suis un peu pommé.

    Plutôt que de provoquer une erreur, je voudrais d'abord vérifier si je peux supprimer l'enregistrement, si oui le supprimer en envoyant la requête, et si non, je gére l'annulation dans mon formulaire VB.

    Est-ce qu'il existe un moyen pour savoir si un tuple dans une table X est libre de toute dépendance, et ainsi supprimer cet enregistrement sans créer de problèmes dans ma base de données.

    J'espere avoir été assez clair.

    Merci d'avance pour les réponses.

  4. #4
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Bonjour,

    ceci vous aidera peut-être:
    http://oracle.developpez.com/sources...che_references
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  5. #5
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Vous pouvez également boucler sur un ensemble d'objets comme cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    SQL> set linesize 200
    SQL> set serveroutput on
    SQL> 
    SQL> Declare
      2    Cursor C_Tables Is
      3    Select table_name from user_tables
      4    order by table_name ;
      5  Begin
      6    dbms_output.enable( 1000000 ) ;
      7    For C in C_Tables Loop
      8       P_TRACE_FK( C.TABLE_NAME ) ;
      9    End loop ;
     10  End ;
     11  /
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  6. #6
    Nouveau membre du Club Avatar de _ChToM_
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 111
    Points : 27
    Points
    27
    Par défaut
    Merci pour la réponse.

    Le script du lien a l'air vraiment intéressant.

    Je vais regarder ca.

  7. #7
    Nouveau membre du Club Avatar de _ChToM_
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 111
    Points : 27
    Points
    27
    Par défaut
    Slt,

    j'ai testé ce petit script mais je n'obtiens absolument rien sur la sortie, juste le message suivant :

    -----------------------------------------------------------------------
    -- Contraintes d'intégrité référentielle de la Table : NOM_TABLE.SCHEMA--
    -----------------------------------------------------------------------

    alors qu'il aurait dû m'afficher des dépendances.

    C'est normal docteur?

    En fait je ne comprends pas bien la ligne " AND A1.CONSTRAINT_TYPE IN ('P', 'U')" ??

  8. #8
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Comment lancez-vous la commande ?
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  9. #9
    Nouveau membre du Club Avatar de _ChToM_
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 111
    Points : 27
    Points
    27
    Par défaut
    Dans TOAD, je fais clic droit sur ma procédure, "Execute procedure", je lui passe le nom de ma table et le nom du schema, je lance la procédure, il mouline pendant quelques secondes, puis la... rien n'en resort.

  10. #10
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    pour info, les noms de table et schéma doivent être saisis en majuscules...
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  11. #11
    Membre habitué
    Inscrit en
    Août 2006
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 181
    Points : 166
    Points
    166
    Par défaut
    tu colle le script dans Sql editor de toad ensuite tu selectionne le tout et tu clique sur le bouton Execute as a script

  12. #12
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Ou alors simplement dans une fenêtre SQL:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    BEGIN
      P_TRACE_FK('LA_TABLE');
    END;
    Penser à mettre DBMS_OUTPUT on.
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  13. #13
    Nouveau membre du Club Avatar de _ChToM_
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 111
    Points : 27
    Points
    27
    Par défaut
    Ouais Ouais, j'ai bien fait attention de bien mettre les majuscules et le nom du schéma.

    Je ne pige franchement pas pourquoi ca marche pas

  14. #14
    Nouveau membre du Club Avatar de _ChToM_
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 111
    Points : 27
    Points
    27
    Par défaut
    Bon j'ai testé la solution de Oraman, ca me donne bien une lliste des tables dépendantes.

    Par contre, il y a des tables qui ne devraient absolument pas être lié à la table que j'ai testé et pourtant il me les affiche. 2 tables qui n'ont rien à voir par exemple, je vois pas pourquoi il les lie.

    Il y a un moyen de savoir comment les deux tables sont liées?

    Merci pour les infos.

  15. #15
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Justement par les contraintes de PRIMARY KEY et UNIQUE KEY
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AND A1.CONSTRAINT_TYPE IN ('P', 'U')"
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  16. #16
    Nouveau membre du Club Avatar de _ChToM_
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 111
    Points : 27
    Points
    27
    Par défaut
    Ben ouais mais moi c'est plutôt les Foreign Key qui m'intéressent là non?

  17. #17
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Dans ce cas il faut peut-être modifier la requête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      AND    A1.CONSTRAINT_TYPE IN ('P', 'U')
    en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      AND    A1.CONSTRAINT_TYPE = 'P'
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  18. #18
    Nouveau membre du Club Avatar de _ChToM_
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 111
    Points : 27
    Points
    27
    Par défaut
    C'est bon, ca a l'air d'être carrement mieux.

    Merci pour le coup de main.

    J'avais tenté en mettant 'R'. Mais du coup, à quoi correspond ce R ?

  19. #19
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    C (check constraint on a table)
    P (primary key)
    U (unique key)
    R (referential integrity)
    V (with check option, on a view)
    O (with read only, on a view)
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  20. #20
    Nouveau membre du Club Avatar de _ChToM_
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 111
    Points : 27
    Points
    27
    Par défaut
    Nickel.

    Merci pour les infos.

    Bonne prog

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

Discussions similaires

  1. Lister les dépendances de ruby
    Par unnamed-anonymous dans le forum Ruby
    Réponses: 2
    Dernier message: 16/06/2011, 08h53
  2. Lister les fichiers et les dépendances liés à un projet
    Par sovo dans le forum Vos contributions VB6
    Réponses: 19
    Dernier message: 24/10/2007, 22h57
  3. Question sur les dépendances fonctionnelles
    Par Luffy Duck dans le forum Débuter
    Réponses: 3
    Dernier message: 29/03/2007, 20h04
  4. [2.0] Lister les dépendances d'objets SQLServer
    Par mister3957 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 27/01/2007, 09h54
  5. ODBC et les dépendances fonctionnelles
    Par LordBob dans le forum MFC
    Réponses: 4
    Dernier message: 08/07/2005, 10h05

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