Pas de table "new" dans un trigger ?
Bonjour,
Je suis plus habitué à l'écriture de triggers sous SQL Server que sous Oracle.
Je souhaite faire un trigger "global" (donc pas "for each row").
Lorsque les données inserrées correspondent à certains critères, je souhaite forcer la valeur inserrée.
Voici ce que j'ai tenté d'écrire :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
create or replace
TRIGGER WTRIG_EVL
-------------------------------------------------------------------------------
-- Trigger : wtrig_evl
-- Fichier : ap$triggers:wtrig_evl.sql
-- Si on est en train de créer un retour marchandise (V/RET) alors
-- l'emplacement de la livraison ne soit pas être repris. On est forcément
-- sur un emplacement vide pour remettre en stock non réservé client.
-------------------------------------------------------------------------------
-- Auteur : S.DEVIDAL
-- Version |Date |Auteur |Objet
-------------------------------------------------------------------------------
-- V.1 | 2011-12-05 | S.DEVIDAL |Version initiale
-------------------------------------------------------------------------------
BEFORE INSERT ON EVL
BEGIN
update new
set codemp = ' '
where codsoc = 218
and achvte = 'V'
and typeve = 'RET';
END; |
Voici les erreurs que je me prends dans la tête :
Erreur(2,4): PL/SQL: SQL Statement ignored
Erreur(2,11): PL/SQL: ORA-00942: table or view does not exist
Pour le première erreur, j'ai aucune idée d'où ça vient.
Et pour la seconde, j'en déduis que "new" n'existe pas... Et ":new" me fait une erreur du même acabit.