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 :

[9i] connaitre l'utilisation d'un champs


Sujet :

Oracle

  1. #1
    Membre averti

    Inscrit en
    Septembre 2003
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 425
    Points : 398
    Points
    398
    Par défaut [9i] connaitre l'utilisation d'un champs
    : On me demande de connaitre comment est utilisé un champs d'une table.

    KK1 a t il une méthode afin de connaitre tous les codes PL/SQL utilisant ce champs. Sachant que le nom du champs en question est utilisé dans plusieurs tables.

    Ce que j'ai fait :
    1°) Recherche des dépendances de ma table
    2°) Dans chaque dépendance trouvée, j'ai recherché grace à all_source le nom de mon champs

    Il me reste donc 170 procédure, fonction, trigger .... Cependant dans ces différents codes certains utilisent bien ma table cependant ils utilisent jamais mon champs mais le même nom champs d'une autre table.

    KK1 a une solution pour trouver l'utilisation d'un champs d'une table et seulement ce champs ? : :

  2. #2
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    Essaye ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT sql_text 
    FROM v$sql_area
    WHERE hash_value 
                          IN (SELECT hash_value 
                                  FROM v$sql_area
                                WHERE lower(sql_text) LIKE '%lacolonne%'
                                 )AND hash_value
                          IN (SELECT hash_value 
                                  FROM v$sql_area
                                WHERE lower(sql_text) LIKE '%latable%'
                                 )
    cela permet de retrouver les codes PL/SQL exécutés depuis le démarrage de la base et utilise la table et la colonne... par contre pas forcément la colonne de la table

    Mais c'est un bon début je pense

  3. #3
    Membre averti

    Inscrit en
    Septembre 2003
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 425
    Points : 398
    Points
    398
    Par défaut
    C'est super bien ca, je le garde sous le coude, cela permet ed voir tout plein de truc.

    Mais comme toute base, elle est sauvagardée la nuit et chez nous sauvegarde ARRET/DEMARRAGE.

    Cependant j'ai pensé à un truc un peu trache :
    • 1° Select de tous les objects invalides
      2° Renommage de la colonne
      3° Recompilation des PL/SQL ... (utl_recomp.recomp_serial ...)
      4° Select de tous les object invalides
      5° Renommage de la colonne comme avant
      6° Recompilation des PL/SQL ... (utl_recomp.recomp_serial ...)


    En théorie si personne ne travaille en même temps sur la base le delta entre 4° et 1° doit nous donner tous les objets utilisant le champs ?

    Qu'en penses tu ?

  4. #4
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    que c'est bien... et c'est bien trash

    comme analyseur d'impact c'est pas mal, l'idéal étant de le faire sur une copie de la base

  5. #5
    Membre averti

    Inscrit en
    Septembre 2003
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 425
    Points : 398
    Points
    398
    Par défaut
    Citation Envoyé par Fred_D
    que c'est bien... et c'est bien trash
    Oui

    En plus pas certain que le résultat soit plus pertinent que la première manière (rech. dépendances + recher cpd_soc dans all_sources)

    Effectivemement, prenons le cas d'une fonction appellée dans tous les pls fasse un accès à ce champs tous les pl seront invalides !

    Bref c'est nul, mais ca avance

  6. #6
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    si tu cherches dans all_sources, ce qui contient ta table et ton champs dans le même objet déjà tu vas déduire le champs de recherche

Discussions similaires

  1. Connaitre le type d'un champ d'une base
    Par Sytchev3 dans le forum Access
    Réponses: 3
    Dernier message: 08/06/2006, 00h04
  2. Réponses: 4
    Dernier message: 18/05/2006, 09h20
  3. Réponses: 3
    Dernier message: 08/11/2005, 07h58
  4. connaitre les propriétés d'un champ à partir de son nom
    Par toome dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 24/10/2005, 11h16
  5. [CSS][formulaire] connaitre le type d'un champ input
    Par psychomatt dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 22/09/2005, 12h13

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