Précédent   Forum des professionnels en informatique > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/06/2007, 14h45   #1
Invité de passage
 
Inscription : mai 2007
Messages : 5
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 5
Points : 1
Points : 1
Par défaut RAISE_APPLICATION_ERROR + INSERT déclenchés par trigger

Bonjour à tous,

Voilà, j'ai un petit problème auquel je ne trouve pas de solution.
Je souhaiterais écrire un trigger, me permettant de déclencher une erreur oracle, et paralèlement qui insère les enregistrements bloqués dans une autre table.

Je m'explique :
Citation:
T1(NUMCDE, ETAT, ...)
T2(NUMCDE, LIGCDE, CODMAG, ...)
T3(ZONE1, ZONE2, ZONE3...)
Supposons le cas suivant :
Citation:
Dans T1 : NUMCDE = 1000 et ETAT = C
Dans T2 : NUMCDE = 1000, LIGCDE = 1 et CODMAG = 10
C'est que je voudrais faire, c'est que si je change l'état de ma commande, et que mon code magasin ne correspond pas à un critère donné, bloqué le changement d'état de la commande, et inséré dans T3 le numéro de celle-ci pour envoyer une alerte.
i.e. :

Code :
1
2
3
4
5
6
7
8
UPDATE T1
SET T1.ETAT = V
WHERE NUMCDE = 1000;
 
IF ( T2.CODMAG NOT IN CONDITION) THEN
    INSERT INTO T3 (:NEW.NUMCDE, :NEW.ETAT, ...);
    RAISE_APPLICATION_ERROR(-20001, 'Validation commande impossible');
END IF;
Merci d'avance pour votre aide
petit_crabe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2007, 14h48   #2
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 450
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 450
Points : 4 209
Points : 4 209
Fais une procédure d'insertion Autonome (pragma autonomous transaction)
__________________
More Code : More Bugs. Less Code : Less Bugs
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2007, 15h11   #3
Invité de passage
 
Inscription : mai 2007
Messages : 5
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 5
Points : 1
Points : 1
Par défaut Merci

Merci McM
Ca répond tout à fait à ce dont j'avais besoin
Merci beaucoup
petit_crabe est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h39.


 
 
 
 
Partenaires

Hébergement Web