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

SQL Oracle Discussion :

Récupérer le nom d'un objet oracle effectuant une mise à jour


Sujet :

SQL Oracle

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Récupérer le nom d'un objet oracle effectuant une mise à jour
    Bonjour,

    Je souhaiterais pouvoir récupérer, et stocker dans une table spécifique, le nom des objets oracle mettant à jour un champ d'une table donnée.
    Je m'explique :
    J'ai une table T1, avec plusieurs champs, dont un champ est modifié par plusieurs triggers et/ou procédures. Je voudrais que lorsque d'un champ précis, de ma table T1, est modifié, récupérer le nom de l'objet oracle (trigger ou procédure), et le stocker dans une table T2, avec l'ancienne et la nouvelle valeur du champ modifié.

    Quelqu'un saurait-il comment faire ???
    Merci de votre aide.

  2. #2
    Membre éprouvé Avatar de Yorglaa
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    845
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2004
    Messages : 845
    Points : 931
    Points
    931
    Par défaut
    Salut,
    je pense que le plus simple est d'avoir dans chaque objet en question une variable (par exemble sMyObjectName, de type varchar2(32) ) qui référence le nom ce l'objet en question, et que cette variable soit passée en paramètre à la procédure qui va logguer les différentes mofications...

    par contre une questions :
    si tu as une procédure PL/SQL qui modifie une table, modification qui déclenche un trigger... tu veut garder quoi, le nom du trigger ou de la procédure "source" ?

    auquel cas tu peux avoir une seule variable dans une en-tête de package qui référence le nom de l'objet ACTUELLEMENT EN COURS...
    Puis, au début de chaque Procédure critique, tu affecte le nom de cette procédure à cette variable "globale" avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monPackage.maVariable := 'le nom de ma procédure' ;
    et bien sûr c'est ensuite cette variable globale que tu passes en paramètre à ta procédure de log...

  3. #3
    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
    Points : 3 609
    Points
    3 609
    Par défaut
    Avec ce post tu devrais pouvoir t'en sortir :
    http://www.developpez.net/forums/sho...ight=anonymous

    NB : il est inutile de mettre important dans le titre de ton message, cela n'apporte rien. Chaque posteur trouve son poste important. Merci donc d'éditer ton message pour ne laisser que le sujet de celui-ci.

  4. #4
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Si une procédure PL/SQL modifie ma table, et que cette modification déclenche un trigger, c'est le nom de la procédure que je veux garder.
    Tout ce que je veux, c'est pouvoir traquer quel objet, effectue quelle modification, sur un champ précis de ma table.

    En tout cas, merci pour ton aide.
    La seule chose qui m'embête, c'est que j'aurais aimé ne pas avoir à modifier mes objets oracle... mais bon, au moins, je vais pouvoir tracer d'où provient l'erreur lors des mises à jour.

    Merci.

    Citation Envoyé par Yorglaa
    Salut,
    je pense que le plus simple est d'avoir dans chaque objet en question une variable (par exemble sMyObjectName, de type varchar2(32) ) qui référence le nom ce l'objet en question, et que cette variable soit passée en paramètre à la procédure qui va logguer les différentes mofications...

    par contre une questions :
    si tu as une procédure PL/SQL qui modifie une table, modification qui déclenche un trigger... tu veut garder quoi, le nom du trigger ou de la procédure "source" ?

    auquel cas tu peux avoir une seule variable dans une en-tête de package qui référence le nom de l'objet ACTUELLEMENT EN COURS...
    Puis, au début de chaque Procédure critique, tu affecte le nom de cette procédure à cette variable "globale" avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monPackage.maVariable := 'le nom de ma procédure' ;
    et bien sûr c'est ensuite cette variable globale que tu passes en paramètre à ta procédure de log...

  5. #5
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Merci pour ton aide, je vais essayer tout ça.
    En cas de problèmeje reviendrais vous voir.

    Merci.

    Citation Envoyé par plaineR
    Avec ce post tu devrais pouvoir t'en sortir :
    http://www.developpez.net/forums/sho...ight=anonymous

    NB : il est inutile de mettre important dans le titre de ton message, cela n'apporte rien. Chaque posteur trouve son poste important. Merci donc d'éditer ton message pour ne laisser que le sujet de celui-ci.

  6. #6
    Membre éprouvé Avatar de Yorglaa
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    845
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2004
    Messages : 845
    Points : 931
    Points
    931
    Par défaut
    Même si il n'y a pas de problème mais que tu trouves une solution satisfaisante, ce serait cool d'expliquer la manière dont tu as résolu ton problème.

    Le but est que comme ça, ce post sera aussi utile à une prochaine personne qui se trouverais dans la même problèmatique que toi !

    merci d'avance et bonne chance

Discussions similaires

  1. Microsoft effectue une mise à jour de Windows Store
    Par Stéphane le calme dans le forum Actualités
    Réponses: 5
    Dernier message: 14/05/2014, 15h18
  2. Récupérer le Nom de l'objet Actif
    Par Freiya dans le forum Macros et VBA Excel
    Réponses: 22
    Dernier message: 17/12/2007, 19h36
  3. Réponses: 4
    Dernier message: 11/07/2007, 17h23
  4. [POO] Récupérer le nom d'un objet ?
    Par beastman007 dans le forum Langage
    Réponses: 2
    Dernier message: 13/03/2007, 15h11
  5. [C#][ MSI] Comment effectuer une mise à jour d'application ?
    Par th3r1ddl3r dans le forum Windows Forms
    Réponses: 6
    Dernier message: 15/12/2005, 11h09

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