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

PL/SQL Oracle Discussion :

Appel d'une procédure depuis un trigger


Sujet :

PL/SQL Oracle

  1. #1
    Membre habitué
    Inscrit en
    Novembre 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 469
    Points : 167
    Points
    167
    Par défaut Appel d'une procédure depuis un trigger
    Bonjour à tous,

    j'ai réalisé une procédure dans un package avec 3 paramètres (number, varchar2, varchar2).

    Si je teste ma procedure en sql
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    execute maProcedure(1,'toto','titi');
    la procédure s'exécute bien et effectue les modifications dans les tables que je veux.

    Je souhaite maintenant utiliser cette procédure depuis un trigger mais elle ne fonctionne pas ... on dirait qu'elle ne se lance pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ...
    MonPackage.MaProcedure(id,str1,str2)
    ....
    J'ai même mis un debug dans une table avant et après le lancement de la procédure => je vois les messages dans la table de debug mais rien n'a été fait par la procédure

    Comment faut-il l'appeler ?

    Merci à tous car je bloque
    ----------------------------------
    La façon la plus efficace de combattre un système qui ne nous convient plus
    n'est pas de lutter contre lui mais de s'en désintéresser et de ne plus l'alimenter...

    ----------------------------------

  2. #2
    Membre chevronné
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Février 2012
    Messages
    652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Distribution

    Informations forums :
    Inscription : Février 2012
    Messages : 652
    Points : 1 878
    Points
    1 878
    Par défaut
    S'il y a des traces, c'est que le code a été exécuté par contre :
    - Que fais la procédure exactement ?
    - La table rattachée au trigger est-elle référencée dans la procédure ?
    - Y a t-il une exception WHEN OTHERS non documentée/tracée dans la procédure masquant une éventuelle erreur ?
    - Transaction en cours ?

    Sans code, les pistes de recherches sans assez restreintes quand même...

  3. #3
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Supprimez l’instruction commit et virez vos gestionnaires d’exceptions et surtout le When Others Then Null existant dans votre code.

  4. #4
    Membre habitué
    Inscrit en
    Novembre 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 469
    Points : 167
    Points
    167
    Par défaut
    effectivemment j'ai une erreur de table mutatnte car ma procédure réalise un select dans des tables dont celle concernée par le trigger

    du coup, ben faut que je trouve une autre façon de faire

    Avez vous des idées ?
    ----------------------------------
    La façon la plus efficace de combattre un système qui ne nous convient plus
    n'est pas de lutter contre lui mais de s'en désintéresser et de ne plus l'alimenter...

    ----------------------------------

  5. #5
    Membre chevronné
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Février 2012
    Messages
    652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Distribution

    Informations forums :
    Inscription : Février 2012
    Messages : 652
    Points : 1 878
    Points
    1 878
    Par défaut
    Oui transmettre les données de l'enregistrement (:OLD et/ou :NEW) à la procédure plutôt que de lire l'enregistrement dans ta procédure

  6. #6
    Membre habitué
    Inscrit en
    Novembre 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 469
    Points : 167
    Points
    167
    Par défaut
    effectivement je suis passé par là , je n'avais pas besoin de ramener les valeurs de ma tables .



    Merci

    A ++
    ----------------------------------
    La façon la plus efficace de combattre un système qui ne nous convient plus
    n'est pas de lutter contre lui mais de s'en désintéresser et de ne plus l'alimenter...

    ----------------------------------

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

Discussions similaires

  1. Appel d'une procédure Outlook depuis VBA excel
    Par sergiani dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 08/03/2011, 16h29
  2. Réponses: 2
    Dernier message: 20/10/2010, 12h16
  3. [2005] appel d'une procédure dans un trigger
    Par astur2000 dans le forum Développement
    Réponses: 4
    Dernier message: 12/09/2009, 11h18
  4. [AC-2003] Appel d'une procédure depuis un Bouton de formulaire
    Par rjl dans le forum IHM
    Réponses: 18
    Dernier message: 27/07/2009, 00h32
  5. [VBA-E] Appel de fonction/procédure depuis une variable
    Par truman dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 09/05/2006, 16h20

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