Merci d'utiliser les balises CODE (# dans la barre d'outils), pour améliorer la lisibilité de ton code
Bon, c'est pas bon du tout ce que tu as fait.
1è cas : sans curseur :
le "IF ETUDIANT%FOUND" ne veut rien dire. Il faudrait que "EDTUDIANT corresponde à un curseur. Ce qu'il faut que tu fasses, c'est que tu testse si ta requête insert a trouvé au moins un enregistrement.
Pour cela tu peux utiliser :
Par ailleurs je te conseille de toujours nommer tes colonnes quand tu fais un insert :
INSERT INTO BLOC(NumBloc, effectifBloc) ....
2è cas : avec curseur :
Déjà tu aurais du tenir compte de la remarque de McM et lire le tuto que je t'avais donné : le exit ne sert à rien.
Après tu as 2 solutions :
- si tu utilises un for, tu as besoin d'une variable pour indiquer si tu as au moins un enregistrement :
1 2 3 4 5 6 7
| v_exist := false;
for mavar in moncurseur loop
v_exist := true;
...
end loop;
if not v_exist then
insert into ... |
- si tu utilises la syntaxe open ... fetch, il faut que tu testes avant de fermer ton curseur :
if moncurseur%found then ...
Partager