Bonjour professeur depuis j'ai cet erreur dans mn code je comprends pas pourquoi
merci
Create or replace trigger ajout_rejet
before insert or Update of sal on emp
for each row
declare
L salgrade.Losal%type;
H salgrade.Hisal%type;
begin
select Losal into L from salgrade;
select Hisal into H from salgrade;
if (new.sal <L and new.sal>H ) then
RAISE_APPLICATION_ERROR (-20010, 'salaire hors de l'interval de salaires de');
end if;
end;
/
8/56 PLS-00103: Symbole "INTERVAL" rencontrÚ Ó la place d'un des
symboles suivants :
) , * & = - + < / > at in is mod remainder not rem =>
<exposant (**)> <> or != or ~= >= <= <> and or like like2
like4 likec between || multiset member submultiset
Attention:
1. on utilise la syntaxe :New.nomcolonne pour accéder au colonne de l'enregistrement modifié (vous avez oublié : )
2. Vos deux requêtes Select ...Into risquent de soulever des exceptions. Il faut la clause where pour s'assurer que la requête retourne une seule valeur.
3. vous êtes sûr de la condition du IF ?
RAISE_APPLICATION_ERROR (-20010, 'salaire hors de l'interval de salaires de');
*je pense que tu dois aussi enlever l'apostrophe " l'interval " .
l'enlever ou bien la mettre en double (deux fois de suite) pour l'afficher:
RAISE_APPLICATION_ERROR (-20010, 'salaire hors de l''interval de salaires de');
et les deux point avant le new que j"avais aussi omis
Merci beacoup!!!!!!!!!!!!!
Attention:
1. on utilise la syntaxe :New.nomcolonne pour accéder au colonne de l'enregistrement modifié. Vous avez oublié les deux point :
2. Vos deux requêtes Select ...Into retourne plus qu'une ligne, elles vont soulever des exceptions. Il faut la clause where pour s'assurer que la requête retourne une seule valeur.