BONJOUR
Ce programme effectue une mise à jour dans la base sur un tuple demandé par l'utilisateur. Si le tuple donné n'existe pas dans la base, le programme se bloque et génère une erreur d'exécution.
J'ai voulu traiter cette erreur, j'ai fait plusieurs essais mais je n'arrive pas à le faire. Est ce que vous pouvez m'aider svp

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
PROMPT Donner l'identifiant de l'article
Accept id
 
DECLARE
rty_article article%rowtype;
pum article.pu%type;
ex1 exception;
PRAGMA EXCEPTION_INIT (ex1, -00904);
BEGIN
select * into rty_article from article where article.idart = &id;
EXCEPTION
WHEN ex1 THEN
dbms_output.put_line('article non trouvé ');
WHEN OTHERs THEN
 
select avg(article.pu) into pum from article
where article.pu >= rty_article.pu and article.idart <> rty_article.idart;
 
if pum <= rty_article.pu then
rty_article.pu := rty_article.pu +( rty_article.pu * 0.03 );
else
rty_article.pu := pum ;
end if;
UPDATE Article SET pu = rty_article.pu where idart = rty_article.idart;
dbms_output.put_line('Identifiant: '|| rty_article.idart ||' Designation: '|| rty_article.desart ||' Prix unistaire: '|| rty_article.pu);
 
END;