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 :

Peut-on dans la clause when faire appel à une procédure stockée ?


Sujet :

SQL Oracle

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Peut-on dans la clause when faire appel à une procédure stockée ?
    Peut-on dans la clause when d'un trigger faire appel à une sous-requête sql ou à une procédure stockée ?

    J'explique ci-après quel est mon objectif:
    Restreindre le déclenchement du trigger en fonction d'informations non basées sur la table (objet du trigger) mais fortement corrélées à certains champs de ma table ... d'où mon recours à une fonction stockée.
    En effet, je ne veux pas coder cette restriction à l'intérieur du corps du trigger afin d'éviter son exécution systématique et ainsi de filtrer en amont (dans la clause when) pour autoriser où non l'exécution du trigger.

    Merci de m'aider à valider la faisabilité ou l'infaisabilité de la chose ... et à défaut de me proposer une solution alternative.

    Ci-dessous le début de la déclaration du trigger pour lequel j'ai tenté le recours à une fonction stockée.
    La compilation du trigger m'a renvoyé l'erreur ORA-04076:invalid NEW or OLD specification.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE OR REPLACE TRIGGER XXWM_MADEIN_COO_HIST_AIR_TRG 
    AFTER INSERT ON RCV_TRANSACTIONS 
    REFERENCING NEW AS NEW OLD AS OLD 
    FOR EACH ROW 
    WHEN ( NEW.TRANSACTION_TYPE = 'DELIVER' 
    AND XXWM_WMS_COMMON.Is_wms_organization( NEW.ORGANIZATION_ID ) = 'Y' 
    AND XXWM_WMS_COMMON.Is_rcv_item_is_wms( NEW.ORGANIZATION_ID , NEW.SHIPMENT_LINE_ID ) = 'Y' 
    )
    Merci pour votre aide

  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
    non, tu dois faire un IF dans ton trigger

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 354
    Points : 436
    Points
    436
    Par défaut
    Il est également interdit d'utiliser du SQL dans cette clause

Discussions similaires

  1. [11g] Faire appel à une procédure stockée en lui passant un INT (C#)
    Par Thims dans le forum Interfaces de programmation
    Réponses: 1
    Dernier message: 13/01/2015, 11h36
  2. Zend : Faire appel à une procédure stocké SQL
    Par CocoLeNain dans le forum Zend_Db
    Réponses: 2
    Dernier message: 22/04/2009, 10h23
  3. Réponses: 1
    Dernier message: 28/09/2008, 09h14
  4. Réponses: 1
    Dernier message: 14/08/2007, 11h14
  5. Réponses: 3
    Dernier message: 17/01/2006, 17h12

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