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.
Merci pour votre aide
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' )
Partager